码迷,mamicode.com
首页 > 编程语言 > 详细

自己使用python webob,paste.deploy,wsgi总结

时间:2015-01-19 22:26:22      阅读:288      评论:0      收藏:0      [点我收藏+]

标签:

paste.deploy就是一个可以配置wsgi_app的工具,可以让服务器运行时,按照配置文件执行一系列的程序。需要使用.ini配置文件。

(1)这里补充一下当时没看到的配置文件

1.[app:main]的意识是只有一个app,所以就叫main,其实叫别的也无所谓。

use=egg:MyAPP   egg其实是一个程序包,是需要单独安装的东西。egg包是目前最流行的python应用打包部署方式

2.[composite:main]                      composite是Paste中的一个模块,这个意思是用Paste egg 包中的urlma,就是Paste用egg打过包了,所以这么用

use = egg:Paste#urlma

3.[app:wiki]                                call(表示使用call方法):模块的完成路径名字:应用变量的完整名字,即调用了applicationde __call__(global,**kawrgs)

use = call:mywiki.main:application

4.[app:myfacapp]   

paste.app_factory = myapp.modulename:app_factory    

paste.app_factory,意思是调用了myapp.modulename.py的app_factory的方法,该方法的参数为app_factory(global_conf,**local_conf),在该方法

中会返回一个app,这个app是一个可调用对象,就是有__call__。注意paste.app_factory必须这样写,但是调用的可以不叫app_factory

5.同理的paste.fileter_factory是一样的。

6.wsgi的使用流程和注意事项:

 


1     from paste.deploy import loadapp
2 from wsgiref.simple_server import make_server1
3 if __name__==__main__: 2 configfile="serverconf.ini" #这里是其他程序里的,所以是这样 3 appname="pd1" #这里也不是必须的 4 wsgi_app=loadapp("config:%s" % os.path.abspath(configfile),appname) #注意必须使用路径 5 server=make_server(192.168.1.104‘,8080,wsgi_app) 6 server.serve_forever() 7 pass
 首先当调用Loadapp时就会执行conf中的app_factory方法,并会在该方法中的return app时,调用该app的init程序。但是不会返回和调用__call__方法。然后会不停等待。只有当有接收到
请求时,才会执行该__call__方法。方法返回后__init__不会退出。下次请求时,不会执行__init__了。只会执行__call__方法。

 

自己使用python webob,paste.deploy,wsgi总结

标签:

原文地址:http://www.cnblogs.com/zmlctt/p/4234773.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!