自己使用python webob,paste.deploy,wsgi总结
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总结的更多相关文章
- 详解Paste deploy
原创作品,转载注明本文出处:http://www.cnblogs.com/Security-Darren/p/4087587.html 谈到WSGI,就免不了要了解paste,其中paste depl ...
- Python Paste.deploy 笔记
首先python paste是一个WSGI工具包,在WSGI的基础上包装了几层,让应用管理和实现变得方便.说实话,Python Paste的文档做的真差劲!加之python代码可读性本来就不怎么滴,真 ...
- 探索 OpenStack 之(11):cinder-api Service 启动过程分析 以及 WSGI / Paste deploy / Router 等介绍
OpenStack 中的每一个提供 REST API Service 的组件,比如 cinder-api,nova-api 等,其实是一个 WSGI App,其主要功能是接受客户端发来的 HTTP R ...
- [原]Paste.deploy 与 WSGI, keystone 小记
Paste.deploy 与 WSGI, keystone 小记 名词解释: Paste.deploy 是一个WSGI工具包,用于更方便的管理WSGI应用, 可以通过配置文件,将WSGI应用加载起来. ...
- paste deploy初探
这段时间刚着手开始研究Openstack Swift源码,为后续开发做准备. Swift依据python WSGI规范.WSGI(Web Server Gateway Interface)是Pytho ...
- 如何使用Paste.Deploy
转自:http://bingotree.cn/?p=100 1.Paste Deploy的一个组件,但是并不依赖于Paste的其它组件.其可以看成是一个独立的包.其主要用于通过一个配置文件完成WSGI ...
- keystone源码分析(一)——Paste Deploy的应用
本keystone源码分析系列基于Juno版Keystone,于2014年10月16日随Juno版OpenStack发布. Keystone作为OpenStack中的身份管理与授权模块,主要实现系统用 ...
- how to read openstack code : paste deploy
本篇分为以下几个部分 paste 是什么 怎样使用paste paste of neutron paste 是什么 WSGI 是python 中application 和 web server互通的标 ...
- [Python WEB开发] 使用WSGI开发类Flask框架 (二)
WSGI Web服务器网关接口 WSGI主要规定了Web服务器如何与Web应用程序进行通信,以及如何将Web应用程序链接在一起来处理一个请求. wsgiref Python中的WSGI参考模块 ...
随机推荐
- form提交的时候使用method=get导致乱码
一个a.jsp提交给b.jsp, b.jsp中使用 request.setCharacterEncoding("UTF-8"); 解决乱码 a.jsp中的form忘了写method ...
- Diving Into Lync Client Logins
Now that we have a fully functional UC lab it's time to start using the lab to explore various aspec ...
- win8找到程序员计算器
最近想用计算器的十进制和十六进制转化的功能,发现win8没有开始菜单了,从网上查了查,原来指令如此简单,特此做笔记,谨防忘记! 操作:win+r打开运行,输入calc,确定就出来了!
- 单调递增最长子序列(南阳理工ACM)
描述 求一个字符串的最长递增子序列的长度如:dabdbf最长递增子序列就是abdf,长度为4 输入 第一行一个整数0<n<20,表示有n个字符串要处理随后的n行,每行有一个字符串,该字符串 ...
- WCF约束名称的用法
<!--<endpoint address="" binding="basicHttpBinding" bindingConfiguration=& ...
- HTML & CSS 小总结
1. web 主机代理商 web hosting company, 让他们的服务器为你的页面服务2. 选择网站名字 例如: www.1234.com3. 寻找 把文件从电脑传到主机的途径4. 把新网站 ...
- ORG 07C00H的意思
简单说来,该指令用来修正该指令以后出现的(变量/标志的)内存地址,也就是说如果有ORG 0x12345h,那么在该指令以后的变量的地址将被修正为0x12345+old_addr.对于DOS中的COM文 ...
- 【笨嘴拙舌WINDOWS】GDI(2)
古时候,大师舞文之时需要笔墨纸伺候,不同笔,不同墨,作品风格迥异! 以下是windows提供的笔(带有墨): CreatePen(PS_SOLID,0,clRed); ...
- ionic中登陆逻辑控制
问题 登陆成功后从login.html调转到home.html,此时在home页面按back键又回到了login.html . 解决方案 登陆成功后,清除导航历史堆栈. 具体代码 menu.html ...
- js如何判断一个对象是不是Array
typeof 操作符 对于Function, String, Number ,Undefined 等几种类型的对象来说,他完全可以胜任,但是为Array时 var arr=new Array(&quo ...