跳转到主要内容

Zope 3和PasteDeploy

项目描述

zope.paste 允许您使用 PasteDeploy 在任何支持 WSGI 的 web 服务器上部署 Zope 3 应用程序服务器。

zope.paste 允许您使用 PasteDeploy 在任何支持 WSGI 的 web 服务器软件上运行 Zope 3。为此,您将不再需要 Zope 3 实例(尽管您仍然可以拥有一个),您将不会通过 zope.conf 配置 Zope 3,也不会使用 runzopezopectl 启动它。

配置应用程序

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 应用程序,有几种方法可以实现

  1. 使用如 PasteDeploy 所述的 复合应用程序

  2. 设置额外的 IServerType 实用工具。

我现在将向您展示如何实现后者。

这里的技巧是,您可以选择使用 zservertwisted 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 应用程序。以下是您可以这样做的方法。

  1. 创建一个新的 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>
  2. 更改您的 zope.conf 文件,使用新创建的 Paste.Another 实用工具定义一个新的服务器

    <server>
      type Paste.Main
      address 8080
    </server>
    
    <server>
      type Paste.Another
      address 8180
    </server>
  3. 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.intox.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 (15.0 kB 查看哈希值)

上传时间

构建分布

zope.paste-1.1.0-py3-none-any.whl (13.6 kB 查看哈希值)

上传时间 Python 3

由以下支持

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误记录 StatusPage StatusPage 状态页面