动物园用胶

ore.wsgiapp的Python项目详细描述


ore.wsgiapp
----


此软件包允许将zope3环境引导为不带zodb的wsgi
应用程序。


此软件包的用户将要发布的根对象注册为iaapplication实用程序,该实用程序由默认发布查找并返回。所有对象发布/遍历都从
这个用户定义的根对象继续进行。

此外,这个包支持标准的zope3 zcml加载,以及调试功能。

usage
----


使用ore.wsgiapp构造应用程序的简要教程



定义应用程序
===



用于此目的的有用基类
位于ore.wsgiapp.app模块中。

>;>;来自ore.wsgiapp import app
>;>;类myapplication(app.application):传递


如果我们将此对象注册为实用程序,则它将是zope发布的根对象

>;>;提供实用程序(myapplication)

您仍然需要提供视图、子对象等。


粘贴配置
您包括一个配置部分,如:


,其中:

[app:zope]
use=egg:ore.wsgiapp
zcml=test.zcml


application
==br/>

将应用程序设置推迟到应用程序加载完其
配置之后,这样就可以充分配置组件体系结构。为了实现这一点,ore.wsgiapp
生成一个iwsgiapplicationcreatedevent,并将应用程序作为属性。我们可以在zcml中为此注册一个订阅服务器
,它将在加载配置后被调用。

作为示例,我们将使用事件订户从zope.app.component import site


>;>zope.app.container.sample import samplecontainer
>;
>;>def appsetup(app,event event):
…”初始化应用程序“

…#设置本地站点管理器
…sm=site.localsitemanager(self.context)
…self.context.setsitemanager(sm)

…#添加文件夹
…app['news']=samplecontainer()


==



ore支持的一种有用的应用程序开发工具。wsgiapp允许应用程序
在python调试器中,在应用程序中的未处理的异常上自动进入死后调试会话。wsgiapp支持pdb调试模式,只需打开developer
模式配置即可。开发人员模式还支持zope堆栈中的其他功能,例如自动重新加载页面模板,等等。

[app:main]
use=egg:zope.publisher
publication=egg:zope.publisher\sample
foo=bar


我们设置

>;>test_zcml_contents


我们可以通过调用ore.wsgiapp paste application
工厂为此应用程序创建wsgi应用程序。此应用程序接受zcml关键字arg以指向初始应用程序配置和devmode布尔开关。我们将通过使用包资源查找工厂:

>;>import pkg_resources
>;>app_factory=pkg_resources.load_entry_point(
…)ore.wsgiapp“,”paste.app_factory“,”main“)

>>>;app=app_factory(dict(global_option=42),
…zcml=test_zcml_path)




我们可以通过使用
环境字典和启动响应函数:

>;>def start_response(status,headers):
…打印状态
>;>import cstringio
>;>env={'内容类型':'文本/普通','路径信息':'/',
…'请求方法“:”get“,”wsgi.input“:cstringio.stringio('')}


>;>对于应用程序中的数据(env,start_response):
…打印数据,
…#doctest:+normalize_whitespace
200 ok
hello world



0.3.2-2008年5月1日


-附加文档和测试


0.3.1-2008年1月10日

-在加载配置后将应用程序打开事件添加到挂钩设置

0.3-2008年1月9日

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

推荐PyPI第三方库


热门话题
java未从Facebook OAuth接收名字、姓氏和姓氏   我自己代码中的java ConcurrentModificationException   java在Android上获得单像素TIFF图像   java图形输出中的swing集成弹出窗口“通知”   将数据库表中的所有数据集插入jTable Java   java如何使用Hibernate获取不完整的集合?   打印无法从java连接到打印机   java使用分隔符拆分带引号的字符串   java Axis2禁用严格验证(wsdl2java中的Eosv)允许什么,如何使其更加严格?   java有人能帮我处理循环代码吗   java将JsonObject数组转换为整数   JavaXWiki扩展:检测事件空间创建   java如何设置图表的文本方向以使用poi旋转所有文本?   eche RecyclerView项的java Set自定义字体   java单元测试带有私有构造函数的spring组件,无需注入   用户界面如何在java中动态显示一组多个元素?   如何从java应用程序调用IDL(交互式数据语言)?   Java的内置库实现