python数据建模到底是什么意思_什么是ZODB数据模型?
假设我定义了一个新的持久类帐户,如中所述
在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
相关文章