Zope 3和PasteDeploy
项目描述
zope.paste 允许您使用 PasteDeploy 在任何支持 WSGI 的 web 服务器上部署 Zope 3 应用程序服务器。
zope.paste 允许您使用 PasteDeploy 在任何支持 WSGI 的 web 服务器软件上运行 Zope 3。为此,您将不再需要 Zope 3 实例(尽管您仍然可以拥有一个),您将不会通过 zope.conf 配置 Zope 3,也不会使用 runzope 或 zopectl 启动它。
配置应用程序
zope.paste 为 Zope 3 的 WSGI 发布应用程序提供兼容 PasteDeploy 的工厂,并在入口点中注册它。因此,我们可以在 PasteDeploy 配置文件(例如 paste.ini)中创建一个非常简单的 Zope 3 应用程序。
[app:main] use = egg:zope.paste site_definition = /path/to/site.zcml file_storage = /path/to/Data.fs devmode = on
在这种情况下,/path/to/site.zcml 指的是一个 Zope 3 实例所知的 site.zcml。例如,您可以将 paste.ini 放入现有的 Zope 3 实例旁边,与 site.zcml 相邻。
配置 ZODB 数据库
您可以使用类似于 zope.conf 的 ZConfig 风格配置文件(例如以下配置了一个 ZEO 客户端)来配置多个或其他 ZODB 数据库后端,而不是使用 file_storage 设置来引用 ZODB FileStorage。
<zodb> <zeoclient> server localhost:8100 storage 1 cache-size 20MB </zeoclient> </zodb>
以这种方式从 paste.ini 中引用此文件(并删除 file_storage 设置)
db_definition = db.conf
配置服务器
为了能够使用我们的 Zope 应用程序,我们只需要添加一个服务器定义。我们可以使用 Paste 或 PasteScript 中的其中一个
[server:main] use = egg:PasteScript#wsgiutils host = 127.0.0.1 port = 8080
现在我们可以使用 PasteScript 中的 paster 命令启动应用程序
$ paster serve paste.ini
WSGI 中间件可以像上面描述的那样或在 PasteDeploy 网站上配置。
在 Zope 3 中配置多个 WSGI 应用程序
如果您想要托管 更多 的 WSGI 应用程序,有几种方法可以实现
使用如 PasteDeploy 所述的 复合应用程序。
设置额外的 IServerType 实用工具。
我现在将向您展示如何实现后者。
这里的技巧是,您可以选择使用 zserver 和 twisted WSGI 服务器。由于 zope.paste 只是粘合代码,因此我们为每个服务器定义了一个 IServerType 实用工具,唯一特殊的是实用工具名称被传递给了 WSGI 应用程序工厂。
以下是该软件包中找到的 configure.zcml 的摘录
<configure zcml:condition="have zserver"> <utility name="Paste.Main" component="._server.http" provides="zope.app.server.servertype.IServerType" /> </configure> <configure zcml:condition="have twisted"> <utility name="Paste.Main" component="._twisted.http" provides="zope.app.twisted.interfaces.IServerType" /> </configure>
根据哪个服务器可用,注册正确的 IServerType 实用工具。鼓励您在定义自己的时使用相同的模式。
假设您想要拥有第二个 WSGI 应用程序。以下是您可以这样做的方法。
创建一个新的 IServerType 实用工具。此摘录可以添加到您自己的包中的 configure.zcml,或者添加到 etc/package_includes 中的独立文件中
<configure zcml:condition="have zserver"> <utility name="Paste.Another" component="zope.paste._server.http" provides="zope.app.server.servertype.IServerType" /> </configure> <configure zcml:condition="have twisted"> <utility name="Paste.Another" component="zope.paste._twisted.http" provides="zope.app.twisted.interfaces.IServerType" /> </configure>
更改您的 zope.conf 文件,使用新创建的 Paste.Another 实用工具定义一个新的服务器
<server> type Paste.Main address 8080 </server> <server> type Paste.Another address 8180 </server>
在 paste.ini 中定义一个 WSGI 应用程序 Paste.Another
[pipeline:Paste.Main] pipeline = xslt main [app:main] paste.app_factory = zope.paste.application:zope_publisher_app_factory [filter:xslt] paste.filter_factory = xslfilter:filter_factory [app:Paste.Another] paste.app_factory = zope.paste.application:zope_publisher_app_factory
变更历史
1.1.0 (2022-11-21)
添加对 Python 3.6、3.7、3.8、3.9、3.10、3.11 的支持。
停止支持 Python 2.7 和 3.5。
1.0.0 (2017-01-04)
将支持从 Python 3.3 更改为 3.5。
停止支持 Python 2.6。
1.0.0a1 (2013-02-27)
添加对 Python 3.3 的支持。
停止支持 Python 2.4 和 2.5。
移除了在 Zope 3 应用程序内部使用 WSGI 中间件的支持。现在只支持基于脚本的服务器启动。
添加了一个新的控制台脚本,用于运行配置好的 Paste WSGI 服务器和应用程序。
遵循标准的 ZF 项目布局。
添加了许可和版权文件。还修复了文件头部中的版权声明。
添加了 MANIFEST.in 和 tox.ini。
0.4 (2012-08-21)
添加此变更日志,根据 PyPI 上的 svn 日志和发布日期重建。
在 PasteDeploy INI 文件中支持 'features' 配置选项,它可以包含由空格分隔的特征名称列表。这些可以在 ZCML 文件中使用 <directive zcml:condition="have featurename”> 语法进行测试。
之前唯一可以启用的功能是 'devmode',并且它有自己的选项。为了向后兼容,devmode = on 将 'devmode' 功能添加到功能列表中。
0.3 (2007-06-02)
以 egg 包的形式发布,并明确指定了 zope.app 包的依赖项。
构建源树。
0.2 (2007-05-29)
扩展了文档。
添加了一个真实的 PasteDeploy 应用程序工厂。这允许您在不使用集成代码的情况下在任何支持 WSGI 的服务器上运行 Zope 3。
支持 devmode。
通过配置文件支持多个数据库(指定 db_definition 而不是 file_storage)。
接受相对于 PasteDeploy INI 文件位置的相对文件名。
0.1 (2006-01-25)
初始发布。
项目详情
下载文件
下载您平台上的文件。如果您不确定选择哪个,请了解更多关于 安装包 的信息。
源分布
构建分布
zope.paste-1.1.0.tar.gz 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | c5c1c55803b6aab8a52c50418c179ae57d04f74a18765ebcc310f34e7a4122ed |
|
MD5 | 5c3336ad238abbb520049c79a59214b2 |
|
BLAKE2b-256 | dc90a5f143517b3abc0056eef5dd5e4538aaabec32689f90f7110a198da7e40d |
zope.paste-1.1.0-py3-none-any.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 306d0676ec515a02ede1e484e4e774bc623a47420cfd254ef7cf7f439cbab989 |
|
MD5 | 4429818547f41a4414fdb7baadedc374 |
|
BLAKE2b-256 | 489042a3b5e6f1df6a6902b96a70faa656e2893939f4f92f55b2d16947ad2033 |