提供用于插入直接在zserver线程上运行的视图的基础结构
Products.ZServerViews的Python项目详细描述
简介
这个zope附加产品提供了zserver视图的简单配置。
它由莱昂纳多·罗谢尔·阿尔梅达(Leonardo Rochael Almeida)撰写,Openmultimedia赞助。
zserver视图是一个(假定)小而快速的WSGI应用程序,它运行 直接从zserver线程(也称为medusa线程)中。
这意味着即使所有zope工作线程都是 忙于处理其他请求。这也意味着如果zserver视图不快, 然后它会阻止zserver处理所有worker的传入请求 线,所以使用本产品时要小心。
zserver视图主要用于系统监视工具,如 死锁调试器或zope资源监视。
安装
将products.zserverviews添加到定义 Zope实例。
配置
在zope中添加zserver视图的产品配置部分 配置(例如zope.conf文件或zope conf additional参数 在构建配置中)。
本节中的每个条目都应包含一个标识符(在 节,但当前未使用[1])、url路径和虚线 将从该url路径服务的视图的名称,全部用分隔 空白。例如:
<product-config zserver-views> my-package /my/view my.package.mymodule.my_view thread-id /thr-id Products.ZServerViews.tests.common.current_thread_id_zserver_view </environment>
这意味着http://yourserver/my/viewurl将在 my.package.mymodule.my_view和位于http://yourserver/thr id的url将 运行products.zserverviews.tests.common.current\u线程视图 wsgi视图。
查询字符串(如果存在)将传递给zserver视图,但传递给子路径 不会的。例如,http://yourserver/my/view?foo=bar将运行 my.package.mymodule.my_view,但是http://yourserver/thrid/fred将不会运行 products.zserverviews.tests.common.current_thread_id_zserver_视图, 但将由Zope直接处理。
这种行为是故意的,反映了zserver查看位置的事实 由单个字典查找决定,而不是由多个regex或 子串匹配。
[1] | The identifiers in product-config keys cannot be composed of many valid URL characters, and are forcibly lower-cased, so they’re useless for either the URL or the dotted name of the view. |
编写zserver视图
zserver视图是小型wsgi应用程序,这意味着它们采用env和 开始响应参数,并返回必须是 发送到浏览器。查询字符串(如果有)将传递到 env['query\u string']。
为了与http/1.1兼容,它们必须向 开始响应()或“transfer encoding=chunked”头并将 内容。如果两者都没有完成,则响应将返回到http/1.0 自动关闭连接。
为了简化这些迷你应用程序的创建,一个装饰器存在。 (products.zserverviews.base导入文本视图 一个函数,只接收env参数并返回一个unicode 弦。这个装潢师会处理所有关于这个的wsgi对话。 回应。检查products.zserverviews.tests.common.current_thread_zserver_view 一个例子。
更改日志
0.2.0(2013-01-24)
- 将viewerror的消息设置为强制参数。它可以是空的但是很多 的HTTP错误代码要求响应中包含正文,因此空正文不是 默认的[leorochael]时间更长
- 添加少量的Python2.4/Zope2.10兼容性(例外情况不是 新型课程)[leorochael]
0.1.1(2013-01-18)
- 在清单[leorochael]中包含.rst文件
0.1.0(2013-01-18)
- 初始RE租赁