python数据建模到底是什么意思_什么是ZODB数据模型?

2022-04-18 00:00:00 专区 订阅 应用程序 定义 脚本

假设我定义了一个新的持久类帐户,如中所述

在the ZODB tutorial中。在import persistent, ZODB, ZODB.FileStorage, import transaction

class Account(persistent.Persistent):

def __init__(self):

self.balance = 0.0

def deposit(self, amount):

self.balance += amount

def cash(self, amount):

assert amount < self.balance

self.balance -= amount

storage = ZODB.FileStorage.FileStorage('mydata.fs')

db = ZODB.DB(storage)

connection = db.open()

root = connection.root

root.accounts = BTrees.OOBTree.BTree()

root.accounts['account-1'] = Account()

transaction.commit()

运行这个脚本之后,我编写了另一个脚本来访问这个对象

我创造的。在

^{pr2}$

第二个脚本的输出是:<__main__.account object at>

0.0

但是如果我在定义了class Account的地方注释行,则输出是:

Traceback (most recent call last):

File "test.py", line 24, in

print(root.accounts['account-1'].balance)

AttributeError: 'Account' object has no attribute 'balance'

我认为对象声明没有附加到数据库,所以

我们不能执行我以前在Account中定义的方法。但是

我不清楚我是否有权访问对象中的属性

找不到类定义。所以我的问题是:有没有基地

数据模型,可用于访问不带类的对象

ZODB中的定义?在

我的问题也是出于以下考虑:

我习惯于数据库中的数据模型

与应用程序逻辑分离。假设我合并了一个新的

然后我发现

X在我的应用程序中产生问题。在经典的方法中,我

总是可以停止应用程序并在没有

逻辑层分析并尝试修复数据。然后,开始

没有模块X的应用程序。但是在ZODB中我没有找到

关于无需类就可以使用的数据层的文档

定义。在
————————————————
版权声明:本文为CSDN博主「weixin_39946029」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_39946029/article/details/112833439

相关文章