对象实例存储数据库ZODB(常见的数据库对象)

网友投稿 428 2022-08-22


对象实例存储数据库ZODB(常见的数据库对象)

对于面向对象数据库,对象关系数据库, 对象数据库,大家可能非常疑惑, 我也不能完全明白, 最大的原因是现在这方面的理论支持和标准还不是很完善。我对对象数据库理解是用来保存类实例的数据库, 是数据持久化的解决方案。

ZODB 是Z Object Database. 是python用于数据持久化的模块。

​​pip install ZODB​​

本地文件保存类实例

测试类

from persistent import Persistentclass Host(Persistent): user = None password = None times = 1 def __init__(self, user, password, times): self.user = user self.password =password self.times = times def run(self): print('user: {}'.format(self.user)) print('password: {}'.format(self.password)) for i in range(1, self.times + 1): print('hello command {}'.format(i))

写类实例

import transactionfrom ZODB import FileStorage, DBstorage = FileStorage.FileStorage('rock.db')db = DB(storage)connection = db.open()root = connection.root()root['rock'] = Host('rock', '123456', 2)root['sandy'] = Host('sandy', '654321', 3)transaction.commit()connection.close()db.close()storage.close()

读类实例并执行方法

from ZODB import FileStorage, DBstorage = FileStorage.FileStorage('rock.db')db = DB(storage)connection = db.open()root = connection.root()root['rock'].run()connection.close()db.close()storage.close()

output:

user: rockpassword: 123456hello command 1hello command 2

远端数据库ZEO保存类实例

ZEO: Zope Enterprise Objects

​​pip install ZEO​​

搭建ZEO Server

命令行:​

runzeo -a 0.0.0.0:52200 -f rock.db

配置文件

address 0.0.0.0:52200 path /root/rock.db path /root/zeo.log format %(asctime)s %(message)s

runzeo --configure zeo.xml

写类实例

import transactionfrom ZODB import FileStorage, DBfrom ZEO import ClientStoragestorage = ClientStorage.ClientStorage(('10.207.69.19', 52200))db = DB(storage)connection = db.open()root = connection.root()root['rock'] = Host('rock', '123456', 1)root['sandy'] = Host('sandy', '654321', 2)transaction.commit()connection.close()db.close()storage.close()

读类实例并执行方法

import transactionfrom ZODB import FileStorage, DBfrom ZEO import ClientStoragestorage = ClientStorage.ClientStorage(('10.207.69.19', 52200))db = DB(storage)connection = db.open()root = connection.root()root['rock'].run()transaction.commit()connection.close()db.close()storage.close()

output:

user: rockpassword: 123456hello command 1

对比关系型数据库,这个是不是很帅气!


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:图文详解java反射机制及常用应用场景
下一篇:Python 爬虫爬取当当网(python培训)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~