`
xiaolin0199
  • 浏览: 573230 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

如何使用ZODB

 
阅读更多

如何使用ZODB

首先要下载安装python-zodb包,地址:http://packages.ubuntu.com/zh-cn/lucid/python-zodb

 

建立和断开与 ZODB 的连接

from ZODB import FileStorage, DB
import transaction

class MyZODB(object):

    def __init__(self, path):
        self.storage = FileStorage.FileStorage(path)
        self.db = DB(self.storage)
        self.connection = self.db.open()
        self.dbroot = self.connection.root()

    def close(self):
        self.connection.close()
        self.db.close()
        self.storage.close()

 

存储简单 Python 数据

from myzodb import MyZODB, transaction
db = MyZODB('./var/Data.fs')
dbroot = db.dbroot
dbroot['a_number'] = 3
dbroot['a_string'] = 'Gift'
dbroot['a_list'] = [1, 2, 3, 5, 7, 12]
dbroot['a_dictionary'] = { 1918: 'Red Sox', 1919: 'Reds' }
dbroot['deeply_nested'] = {
  1918: [ ('Red Sox', 4), ('Cubs', 2) ],
  1919: [ ('Reds', 5), ('White Sox', 3) ],
  }
transaction.commit()
db.close()

 

获取简单数据

from myzodb import MyZODB, transaction
db = MyZODB('./var/Data.fs')
dbroot = db.dbroot
for key in dbroot.keys():
  print key + ':', dbroot[key]
db.close()

 

使用 ZEO 提供远程访问

 

由于一次只有一个程序能够安全地打开“Data.fs”文件,ZEO 服务器是支持来自多个客户端的连接的唯一方法。

 

可通过与不同的zeo服务器通信来连接zodb,启动plone4时,启动了三个进程,其中一个就为zeoserver

from ZEO.ClientStorage import ClientStorage
from ZODB import DB

class MyRemoteZODB(object):
    def __init__(self, server, port):
        server_and_port = (server, port)
        self.storage = ClientStorage(server_and_port)
        self.db = DB(self.storage)
        self.connection = self.db.open()
        self.dbroot = self.connection.root()

    def close(self):
        self.connection.close()
        self.db.close()
        self.storage.close()

mydb = MyRemoteZODB('localhost', 8100) //端口号可从zeo配置文件中读出
dbroot = mydb.dbroot

for key in dbroot.keys():
  print key + ':', dbroot[key]
mydb.close()

 

 

详细参考: http://www.ibm.com/developerworks/cn/aix/library/au-zodb/

 

分享到:
评论

相关推荐

    au-zodb-pdf.pdf

    使用ZODB还是在关系数据库上使用ORM,需要做出一些重要的权衡。例如,ZODB特别适合于存储动态、快速变化的数据,而传统的关系数据库则在事务完整性、一致性和成熟的关系数据库管理系统(RDBMS)生态上更有优势。 ...

    PyPI 官网下载 | ZODB3-3.10.0b6.tar.gz

    同时,安装和使用ZODB通常涉及到Python的pip工具,通过命令行执行`pip install ZODB3-3.10.0b6`即可完成安装。 总的来说,ZODB3-3.10.0b6.tar.gz是一个面向Python开发者的对象数据库解决方案,它提供了便捷的数据...

    Python库 | ZODB3-3.10.4-py2.6-win32.egg

    使用ZODB,开发者可以创建自定义的Python类并直接将它们存储在数据库中,通过简单的对象操作即可实现数据的增删改查。此外,ZODB还提供了事务管理功能,确保数据的一致性和完整性。事务可以确保在发生错误时能够回滚...

    Python库 | ZODB3-3.9.0c1-py2.6-win32.egg

    - **创建数据库**:使用`ZODB.FileStorage.FileStorage`创建一个文件存储,这是ZODB的基本数据容器。 - **连接数据库**:通过`ZODB.DB.open`函数打开存储,然后获取数据库连接。 - **工作事务**:使用`connection....

    PyPI 官网下载 | ZODB3-3.9.5-py2.5-win32.egg

    3. **缓存机制**:ZODB使用缓存技术提高性能,只在必要时才读取或写入磁盘,减少了I/O操作。 4. **数据版本控制**:ZODB提供版本控制功能,可以追踪对象的历史修改,方便回滚和比较不同版本。 5. **分布式存储**:...

    Python库 | ZODB3-3.10.5-py2.7-win32.egg

    ZODB3-3.10.5-py2.7-win32.egg是一个针对Python 2.7版本、在Windows 32位系统上使用的特定版本的ZODB库。这个库的名称中的“3.10.5”代表了其版本号,这是ZODB3的一个稳定版本。 **ZODB的核心特性** 1. **对象...

    PyPI 官网下载 | ZODB3-3.8.0b4-py2.5-win32.egg

    5. 安装完成后,你可以在Python环境中导入并使用ZODB。 总之,ZODB是Python中的一个强大工具,特别适合那些希望将数据存储和业务逻辑紧密集成的项目。尽管这个版本较旧,但它仍然是Python 2.x时代的一个重要组成...

    python的模块

    以下是一个简单的使用ZODB的例子,演示了如何创建数据库、添加对象以及进行基本的操作。 ```python from ZODB import FileStorage, DB import transaction # 创建一个存储对象 storage = FileStorage.FileStorage...

    Python库 | RelStorage-3.4.2-cp27-cp27m-manylinux1_x86_64.whl

    RelStorage是Python中一个重要的持久化存储库,主要用于ZODB(Zope Object Database)的数据管理。这个库的主要功能是提供高效、可靠的方式来存储和检索...如果你正在使用或计划使用ZODB,那么RelStorage绝对值得考虑。

    PyPI 官网下载 | zodbtools-0.0.0.dev4.tar.gz

    总的来说,"zodbtools"是一个针对ZODB的实用工具集,对于那些在Python项目中使用ZODB的人来说,它提供了一个增强ZODB功能的途径。通过理解其工作原理和使用方法,我们可以更好地利用这个库来优化数据库操作,提升...

    Python库 | zodbpickle-1.1-cp38-cp38-manylinux1_i686.whl

    ZODB通过使用Object Relational Mapping(ORM)技术,使得对象和数据库之间的交互变得简单直接。 **cp38和cp38-manylinux1_i686** 在`zodbpickle-1.1-cp38-cp38-manylinux1_i686.whl`这个文件名中,`cp38`表示它是为...

    T-my_python_lib.zip

    综上所述,"T-my_python_lib.zip"包含的是一份包含自动化功能的Python工具库,可能涉及到ZODB对象数据库的使用,且在不断的开发和完善中。开发者通过创建和保存不同时间点的版本来跟踪和管理项目进度。这个库可以...

    PyPI 官网下载 | RelStorage-3.0b1-cp36-cp36m-win_amd64.whl

    ZODB是Python的一个对象数据库,它可以将Python对象直接持久化到磁盘,而RelStorage则提供了与关系型数据库之间的桥梁,使得在使用ZODB时能够充分利用SQL数据库的性能和扩展性。 "3.0b1"表示这是RelStorage的3.0预...

    PyPI 官网下载 | RelStorage-3.1.0-cp27-cp27m-manylinux2010_x86_64.whl

    总的来说,RelStorage是Python开发者在使用ZODB时的一个强大工具,尤其适合那些需要高性能、高可用性和扩展性的项目。通过下载并安装“RelStorage-3.1.0-cp27-cp27m-manylinux2010_x86_64.whl”,开发者可以立即利用...

    PyPI 官网下载 | persistent-4.7.0-cp37-cp37m-manylinux1_x86_64.whl

    这个库主要设计用于Zope内容管理系统和其他使用ZODB(Zope Object Database)的应用,但也可以独立于这些框架使用。 描述中提到“资源全名:persistent-4.7.0-cp37-cp37m-manylinux1_x86_64.whl”,确认了这是`...

    PyPI 官网下载 | RelStorage-1.6.3.tar.gz

    RelStorage是Python中的一款强大的对象关系映射(ORM)...如果你正在使用或考虑使用ZODB作为数据存储,RelStorage是一个值得考虑的增强工具。安装和使用这个库时,建议先阅读README和文档,了解其配置选项和最佳实践。

    ZMYSQLdb资源包

    Plone,作为一个强大的内容管理系统,以其灵活性和可扩展性闻名,但在默认情况下,它使用的是ZODB(Zope Object Database)作为其数据存储机制。然而,当项目需求涉及到与传统关系型数据库如MySQL交互时,ZMySQLdb就...

    Python库 | ZODB3-3.10.0b4.tar.gz

    资源分类:Python库 所属语言:Python 资源全名:ZODB3-3.10.0b4.tar.gz 资源来源:官方 安装方法:https://lanzao.blog.csdn.net/article/details/101784059

    Python库 | persistent-4.2.3-cp35-cp35m-win_amd64.whl

    总结来说,"persistent"库是Python中处理持久化存储的重要工具,尤其在使用ZODB进行数据管理时不可或缺。这个特定的版本是针对Python 3.5和64位Windows系统的,通过.whl文件形式提供,方便用户快速、便捷地安装和...

    PyPI 官网下载 | transaction-1.1.1.tar.gz

    4. **ZODB集成**:对于使用ZODB作为持久化存储的项目,Transaction是不可或缺的工具,它提供了与ZODB的无缝集成,使得在Zope应用中处理事务变得简单。 5. **兼容性广泛**:Transaction不仅限于ZODB,还支持其他遵循...

Global site tag (gtag.js) - Google Analytics