Zope 本地站点和实用程序的类似 Grok 的配置
项目描述
这个包支持直接用 Python(没有 ZCML)为 Zope 编写本地站点和实用程序。
<nav class="contents" id="contents" role="doc-toc">内容
设置grokcore.site
这个包本质上是和grokcore.component 包一样设置的,详情请参考它的文档。您需要的唯一额外的 ZCML 行是:
<include package="grokcore.site" />
将它放在根 ZCML 文件顶部附近的某个位置,但低于包含grokcore.component配置的行。
例子
全局实用程序已由grokcore.component管理。
这是一个本地实用程序的简单示例:
from zope.interface import implements, Interface import grokcore.site class IKangaroo(Interface): def jump(): """Make all kangaroos jump somewhere. """ class KangarooUtility(grokcore.site.LocalUtility): implements(IKangaroo) def jump(self): pass
现在,我们可以将我们的实用程序注册到本地站点。这将自动创建,并在我们创建该站点时注册该实用程序:
class Jungle(grokcore.site.Site): grokcore.site.local_utility(KangarooUtility, IKangaroo)
如果您不添加最后一行,您仍将拥有您的网站,但没有任何东西可以让您跳出您的袋鼠。然后,您将能够在之后手动添加(如果需要)。
API 概述
基类
- 地点
您网站的基类。
- 本地实用程序
ZODB 持久本地实用程序的基类。
指令
- local_utility(工厂,提供=None,name=u'', setup=None,public=False,name_in_container=None)
在站点上用于在创建时注册本地实用程序的指令:
- 工厂
将是要注册的组件(必需参数),
- 提供
将是用于查询本地实用程序的接口(必需参数),
- 姓名
将是用于查询本地实用程序的名称,
- 设置
将是一个带参数的函数。如果已定义,它将在创建实用程序后调用,并将其作为第一个唯一参数。
- 上市
如果为 true,该实用程序将在站点容器本身中创建,而不是在站点管理器中,并且公众将能够直接访问它。
- name_in_container
将用作容器中实用程序的 ID,它将被创建。如果未定义,它将要求 NameChooser 为其选择一个名称。
此外,grokcore.site包公开了 grokcore.component API。
变化
3.1 (2020-09-02)
修复弃用警告。
放弃对 Python 3.4 的支持并添加对 3.7 和 3.8 的支持。
3.0.3 (2018-01-12)
重新安排测试,以便 Travis CI 也可以获取所有功能测试。
3.0.2 (2018-01-11)
不再从zope.site.hooks导入getSite,而是从 zope.component.hooks 导入。
3.0.1 (2018-01-10)
通过删除 ZODB3 来修复依赖关系。
3.0.0 (2018-01-05)
Python 3 兼容性。
1.8 (2016-09-21)
删除站点时,请确保从父站点中删除引用。
1.7.1 (2016-01-29)
更新测试。
1.7 (2015-06-11)
添加可在站点上使用的新指令install_on。该指令允许您自定义何时(即事件)安装已配置的本地站点。
将ApplicationInitializedEvent重命名为ApplicationAddedEvent。
当IApplicationAddedEvent被触发时,新应用程序将是当前 Zope 本地站点。该网站在活动结束后恢复。
1.6.1 (2012-05-02)
暴露 ApplicationInitializedEvent 和 IApplicationInitializedEvent。
为暴露的 IApplication 接口添加了缺少的导入。
1.6 (2012-05-01)
将指令站点从 Grok 移至此包。
将组件应用程序和所有相关实用程序从 Grok 移至此包。
1.5 (2011-01-03)
将 Grok 包中的 IApplication 和 getApplication 移到了这个包中。
1.4 (2010-11-01)
升级了 martian 和 grokcore.component 的版本要求。
1.3 (2010-10-18)
使包符合存储库策略。
更新功能测试以仅使用 zope.app.appsetup 而不是 zope.app.testing。
更新功能测试不再需要 zope.app.zcmlfiles。
1.2 (2009-12-20)
将导入从 zope.app.component 迁移到 zope.site。
1.1 (2009-09-18)
更新了依赖项(添加了缺失的依赖项并添加了单独的测试依赖项)。
本地实用程序现在实现 IAttributeAnnotatable。
从 Grok 本身更新代码文档。
在 Grok 的发布信息中使用 1.0b2 versions.cfg 而不是本地副本;所有 grokcore 包的本地副本太难维护了。
1.0.1 (2009-06-30)
使用没有 distutils 错误的正确版本的 Python 重新上传到 pypi。
1.0 (2009-06-29)
通过从 Grok 中提取基于本地站点的组件、grokkers 和指令来创建grokcore.site 。
项目详情
grokcore.site -3.1.tar.gz 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 9b9d7dc014975f998169ec426e81f49bcb817e783aebf508b213a7a9cdb310a9 |
|
MD5 | 28b886c3ad24c35607963173fdc5970a |
|
布莱克2-256 | 4ba36d4d1ba8392d85619290c0adb257c2bd83a2438f37e428c285db95001d93 |