提供用于插入直接在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租赁

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java如何在另一个承诺中解决一个承诺?   java验证字符串输入   如何在Java中将数组转换为链表   配置Logstash以从socket接收数据,并将其插入java中的Elasticsearch   swing构建在Java中以相同顺序运行的JFrame   java什么是工具箱的正确路径。getImage()?   java springbootgradleplugin是否随springboot版本一起移动?   升级gradle插件后,java gradle项目同步仍失败   java CXF服务调用失败,出现意外命名空间上的解组错误   Javaservlet。servlet ctakesrestservice的init()引发异常   java我需要什么正则表达式来读取这个值'12,'   java如何使用Xstream在现有xml文件中导入带有节点的字符串?   基于特殊字符的java子串   java hibernate从查询创建通用对象