本身使用python webob,paste.deploy,wsgi總結

paste.deploy就是一個能夠配置wsgi_app的工具,能夠讓服務器運行時,按照配置文件執行一系列的程序。須要使用.ini配置文件。python

(1)這裏補充一下當時沒看到的配置文件服務器

1.[app:main]的意識是隻有一個app,因此就叫main,其實叫別的也無所謂。app

use=egg:MyAPP   egg實際上是一個程序包,是須要單獨安裝的東西。egg包是目前最流行的python應用打包部署方式工具

2.[composite:main]                      composite是Paste中的一個模塊,這個意思是用Paste egg 包中的urlma,就是Paste用egg打過包了,因此這麼用url

use = egg:Paste#urlmaspa

3.[app:wiki]                                call(表示使用call方法):模塊的完成路徑名字:應用變量的完整名字,即調用了applicationde __call__(global,**kawrgs)
code

use = call:mywiki.main:applicationserver

4.[app:myfacapp]   
對象

paste.app_factory = myapp.modulename:app_factory     blog

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__方法。
相關文章
相關標籤/搜索