这个包允许您在没有zodb的情况下运行grok

megrok.nozodb的Python项目详细描述


此软件包的主要目的是为 使grok应用程序能够作为aster服务的wsgi运行 不使用zodb的应用程序。

使用megrok.nozodb

要设置一个没有zodb的grok环境 必须更换通常是 位于debug.ini和deploy.ini中:具体地说 将grokcore.startup…替换为megrok.nozodb nozodb

[app:grok] use = egg:megrok.nozodb#nozodb

接下来要做的是设置全局实用程序 充当applicationroot,它是应用程序的起点。 megrok.nozodb有一个未通过的默认值。你可以从它的子类或 提供您自己的用作applicationroot的资料。

>>> from megrok.nozodb import ApplicationRoot

>>> class MyApplicationRoot(ApplicationRoot):
...     pass

>>> myapp = MyApplicationRoot()
>>> from zope.site.interfaces import IRootFolder
>>> IRootFolder.providedBy(myapp)
True

>>> from grok.interfaces import IApplication
>>> IApplication.providedBy(myapp)
True

>>> from zope.location import ILocation
>>> ILocation.providedBy(myapp)
True

>>> from zope.interface.verify import verifyObject
>>> from zope.component.interfaces import ISite
>>> verifyObject(ISite, myapp)
True

API文档

我们必须创建一个简单的站点定义文件 普通:

 >>> import os, tempfile
 >>> temp_dir = tempfile.mkdtemp()

 >>> sitezcml = os.path.join(temp_dir, 'site.zcml')
 >>> open(sitezcml, 'w').write('<configure />')

 >>> zope_conf = os.path.join(temp_dir, 'zope.conf')
 >>> open(zope_conf, 'wb').write('''
 ... site-definition %s
 ...
 ... <zodb>
 ... </zodb>
 ...
 ... <eventlog>
 ...   <logfile>
 ...     path STDOUT
 ...   </logfile>
 ... </eventlog>
 ... ''' %sitezcml)


 >>> from megrok.nozodb import nozodb_factory
 >>> app_factory = nozodb_factory({'zope_conf': zope_conf})

Clean up the temp_dir

  >>> import shutil
  >>> shutil.rmtree(temp_dir)

变更日志

0.1(2010-11-04)

  • 初始版本

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java如何在try块中抛出异常并终止程序   java通过spring boot创建可重用模块   testng上组的java交集。xml   用junit检查Java   netbeans针对Java 5编译web应用程序,但不支持字符串。isEmpty()仍然被允许吗?   使用java显示文件夹中的图像   java如何在输入非数字时修复用户输入错误。下一个双倍?   java Hibernate Hibernate完成saveOrUpdate Vs saveOrUpdateAll   java为什么使用netty循环writeAndFlush发送数据包必须让线程休眠一段时间?   java如何使用onResponse json函数更改安卓片段中的公共字符串值   java DateTimeFormatter严格与宽松的意外行为   java访问neo4jogm的映射上下文   Java使用多个堆栈允许“撤消”方法   java单击图像并对其应用seekbar resize