这个包允许您在没有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)
- 初始版本