跳转到主要内容

zope.publisher的WSGI应用程序

项目描述

此软件包提供了WSGIPublisherApplication类,该类将zope.publisher中的对象发布机制公开为WSGI应用程序。它还允许我们通过简单的函数调用启动Zope应用程序服务器(解析zope.confsite.zcml

>>> db = zope.app.wsgi.config('zope.conf')

这对于调试特别有用。

要同时启动Zope并获得WSGI应用程序对象,请使用getWSGIApplication函数。

此软件包还提供了一种易于使用的PasteDeploy应用程序工厂。您可以在Paste配置文件中指定类似以下的应用程序配置

[app:main]
use = egg:zope.app.wsgi
config_file = %(here)s/zope.conf

更多文档请查看软件包本身。

变更记录

5.0 (2023-01-19)

  • 添加对Python 3.11的支持。

  • 添加对Python 3.10的支持。

  • 取消对Python 2.7、3.5、3.6的支持。

4.4 (2022-07-13)

  • 添加对Python 3.9的支持。

  • 删除对 zope.configurationzope.errorzope.lifecycleeventzope.sessionzope.testing 以及未使用的测试依赖 zope.annotationzope.loginzope.password 的引用。

4.3.0 (2020-07-06)

  • 修复测试层的 http() 方法,使其通过请求协议作为响应协议传递,以兼容 zope.app.testing.functional 的 HTTPCaller。参见 PR 21

4.2.0 (2020-03-23)

  • 添加对 Python 3.7 和 3.8 的支持。

  • 停止对 Python 3.3 和 3.4 的支持。

  • 修复测试层的 http() 方法,使其能够接受 HTTP 请求中的前导空格,以兼容 zope.app.testing.functional 的 HTTPCaller。

  • FakeResponse 添加一个 server_protocol 属性,以便您可以根据需要自定义输出,使其更兼容 zope.app.testing.functional 的 HTTPCaller。

  • 停止使用 python setup.py test 运行测试。

4.1.0 (2017-04-27)

  • 使用 base64.b64encode 来避免在 Python 3 中出现弃用警告。

  • 添加对 PyPy 的支持。

  • 添加对 Python 3.6 的支持。

  • 修复测试层的 FakeResponse,假设在 Python 2 中头部已经是 unicode,而实际上它们应该是已编码的字节。如果头部包含非 ASCII 字符,这可能导致 UnicodeDecodeError。此外,在 Python 2 中实现 __unicode__,在 Python 3 中实现 __bytes__,以简化跨版本测试。参见 问题 7

4.0.0 (2016-08-08)

  • 更新依赖项,不再锁定已发布最终版本的软件包的 alpha 版本。

  • 停止对 Python 2.6 的支持。

  • 声明对 Python 3.4 和 3.5 的支持。这需要更新到

    • zope.app.appsetup >= 4.0

    • zope.app.publication >= 4.0

  • 修复了在 Python 3 中当主体无法转换为 ILoggingInfo 时发生的错误。

4.0.0a4 (2013-03-19)

  • 改进 Trove 分类器。

  • 修复 BrowserLayer(allowTearDown=True),使其真正允许拆卸。

4.0.0a3 (2013-03-03)

  • 现在您可以在不子类化 BrowserLayer 类的情况下指定额外的 WSGI 中间件组件。

  • tox 现在使用 Zope 测试运行器的 ftest 命令来执行测试,因为设置测试无法处理层,尤其是当它们需要生成子进程时。

  • 将所有功能测试切换到使用 WebTest 而不是 zope.testbrowser。设置合适的层。

  • 不要依赖于 zope.testbrowser.wsgi WSGI 层支持。实际上也不需要。

  • 最小化 ftesting.zcml 设置。

  • 向后不兼容:如果您依赖于 zope.app.wsgi.testlayer,则需要要求 zope.app.wsgi[testlayer] >= 4.0(版本约束存在,因为较老的 zope.app.wsgi 版本没有定义 testlayer 扩展)。

4.0.0a2 (2013-03-02)

  • 修复了 WSGI 测试层设置中的一个错误,其中数据库设置不正确。

4.0.0a1 (2013-02-28)

  • 添加了对 Python 3.3 的支持。

  • 用等效的 zope.interface.implementer 装饰器替换了弃用的 zope.interface.implements 使用。

  • 停止对 Python 2.4 和 2.5 的支持。

3.15.0 (2012-01-19)

  • 修复:zope.app.wsgi.paste.ZopeApplication 没有发出 ProcessStarting 事件。

    注意

    如果应用程序通过生成事件来补偿这一点,那么它需要停止,否则将发出多个事件。(是否会对应用程序造成伤害取决于具体的应用程序。)

3.14.0 (2012-01-10)

  • 将WSGI环境中的REMOTE_USER项(如果尚未设置)设置为Zope主体标签。(这与wsgi.logging_info环境项中的数据集相同。)

    此更改允许用户信息被paste.translogger中间件(或任何类似使用REMOTE_USER的中间件)使用,它提供了访问日志。

3.13.0 (2011-03-15)

  • 升级到zope.testbrowser 4.0.0,该版本使用WebTest而不是wsgi_intercept。

3.12.0 (2011-01-25)

  • 修复了zope.app.wsgi.testlayer.http以与3.11.0版本中的更改兼容。

3.11.0 (2011-01-24)

  • 支持移动到zope.testbrowser.wsgi,因此需要至少3.11版本的此包

    • zope.app.wsgi.testlayer.Browser移动到zope.testbrowser.wsgi.Browser,但在此保留了BBB导入。

    • zope.app.wsgi.testlayer.BrowserLayer拆分为通用WSGI浏览器层(zope.testbrowser.wsgi.Layer)和ZODB/ZOPE特定部分(如先前的zope.app.wsgi.testlayer.BrowserLayer)。

3.10.0 (2010-11-18)

  • 在testlayer中为设置WSGI中间件添加了可插入性。

3.9.3 (2010-10-14)

  • 为xmlrpc添加Python 2.7兼容性。移植zope.app.testing r116141。

3.9.2 (2010-05-23)

  • 修复了由于mechanize 0.2.0版本更改导致的测试中断。

3.9.1 (2010-04-24)

  • 添加了对使用zope.app.wsgi.testlayer测试XMLRPC的支持。

  • 修复了zope.app.wsgi.testlayer的FakeResponse中的状态字符串处理中的错误。

3.9.0 (2010-04-19)

  • 在zope.app.wsgi.testlayer.http中返回FakeResponse对象,这使得从zope.app.testing的HTTPCaller迁移测试变得更容易。

  • zope.app.wsgi.testlayer现在与zope.app.testing中的HTTPCaller()功能具有更好的兼容性,它可以替代后者

  • 错误修复:初始化配置中定义的任何<logger>,如zope.app.server所做的那样。(修复了#291147)

3.8.0 (2010-04-14)

  • zope.app.wsgi.testlayer现在与zope.app.testing中的HTTPCaller()功能具有更好的兼容性,它可以替代后者

    • 相同的交易行为 - 在请求之前提交挂起的交易,并在之后同步。

    • 支持browser.handleErrors(用于zope.testbrowser)。

    • 支持明文(非base64)基本认证标头,这使得在测试中更容易阅读(尽管在实际HTTP流量中不正确)。

3.7.0 (2010-04-13)

  • 重新编写测试,以避免依赖于zope.app.testingzope.app.zcmlfiles

  • zope.app.wsgi.testlayer引入了新的测试功能,可以替代zope.app.testing中的旧功能。此外,它支持直接使用zope.testbrowser与WSGI一起使用(而不是依赖于拉入大量依赖项的zope.app.testing)。

    有趣的部分是

    • zope.app.wsgi.testlayer.BrowserLayer:这设置了允许您使用新的WSGI启用浏览器的最小层。

    • zope.app.wsgi.testlayer.Browser:这是来自zope.testbrowser.browser的Browser的子类。直接使用zope.testbrowser.browser而不是使用测试浏览器与WSGI一起使用,请使用此功能。您需要将BrowserLayer与您的测试一起使用才能使其正常工作。

    • zope.app.wsgi.testlayer.http:这是与zope.app.testing中的http()函数等效的功能。它允许通过WSGI进行低级HTTP访问。您需要将BrowserLayer与您的测试一起使用才能使其正常工作。

3.6.1 (2010-01-29)

  • 支持Zope配置文件中的产品配置部分。

3.6.0 (2009-06-20)

  • 直接从zope.processlifetime导入数据库事件,而不是使用zope.app.appsetup中的BBB导入。

3.5.2 (2009-04-03)

  • WSGIPublisherApplication 现在使用 zope.publisher.interfaces.logginginfo 提供的 ILoggingInfo 概念,用于记录用户信息,这些信息可用于访问日志。这允许您实现自己的访问日志用户信息消息。有关更多信息,请参阅 zope.publisher.interfaces.logginginfo.ILoggingInfo。

3.5.1 (2009-03-31)

  • WSGIPublisherApplication 现在在环境中提供了一个用于日志的用户名。

3.5.0 (2009-02-10)

  • 使 devmode 警告消息更通用。在基于 buildout 的设置中,现在我们不需要 etc/zope.conf 文件。

  • 为 Paste 添加了应用程序工厂。因此,Zope 应用程序现在可以轻松地使用 Paste .ini 配置部署,如下所示

    [app:main]
    use = egg:zope.app.wsgi
    config_file = %(here)s/zope.conf
    handle_errors = false

    config_file 是一个必需的参数,但如果没有指定,handle_errors 默认为 True。将其设置为 False 允许您使 WSGIPublisherApplication 不自己处理异常,而是将它们传播到上层中间件,如 WebError 或类似的东西。

  • WSGIPublisherApplication 构造函数和 getWSGIApplication 函数现在接受可选的 handle_errors 参数,如上所述。

  • 将邮件列表地址更改为 zope-dev@zope.org,而不是已退休的地址。

3.4.1 (2008-07-30)

  • 添加了 Trove 类别。

  • 当创建 WSGI 应用程序时,通知 WSGIPublisherApplicationCreated 事件。

  • ftesting.zcml 中修复了弃用警告:ZopeSecurityPolicy 已移动到 zope.securitypolicy

3.4.0 (2007-09-14)

  • 修复了测试,使其在 Python 2.5 以及 Python 2.4 上运行。

  • getApplication 分解为 configgetApplication,以便 config 可以重复使用,例如用于调试。

3.4.0a1 (2007-04-22)

作为独立项目首次发布,对应于 Zope 3.4.0a1 的 zope.app.wsgi

下载文件

下载适用于您平台的文件。如果您不确定选择哪个,请了解有关 安装包 的更多信息。

源分发

zope.app.wsgi-5.0.tar.gz (27.2 kB 查看哈希值)

构建分发

zope.app.wsgi-5.0-py3-none-any.whl (28.8 kB 查看哈希值)

上传于 Python 3

支持

AWSAWS云计算和安全赞助商DatadogDatadog监控FastlyFastlyCDNGoogleGoogle下载分析MicrosoftMicrosoftPSF赞助商PingdomPingdom监控SentrySentry错误日志StatusPageStatusPage状态页面