2013年5月6日 星期一

Python Paste

python paste是WSGI的工具包,基於WSGI的基礎多包裝了幾層,目的是用來將應用管理與實現變得更方便。


- app是一个callable object,接受的参数(environ,start_response),这是paste系统交给application的,符合
WSGI规范的参数. app需要完成的任务是响应envrion中的请求,准备好响应头和消息体,然后交给start_response处理,并返回响应消息体。
- filter是一个callable object,其唯一参数是(app),这是WSGI的application对象,见(1),filter需要完成的工作是将application包装成另一个application(“过滤”),并返回这个包装后的application。
- app_factory是一个callable object,其接受的参数是一些关于application的配置信息:(global_conf,**kwargs),global_conf是在ini文件中default section中定义的一系列key-value对,而**kwargs,即一些本地配置,是在ini文件中,app:xxx section中定义的一系列key-value对。app_factory返回值是一个application对象
- filter_factory是一个callable object,其接受的参数是一系列关于filter的配置信息:(global_conf,**kwargs),global_conf是在ini文件中default section中定义的一系列key-value对,而**kwargs,即一些本地配置,是在ini文件中,filter:xxx section中定义的一系列key-value对。filter_factory返回一个filter对象

给个例子:
pastedeploylab.ini:
[python] view plaincopy
  1. [DEFAULT]  
  2. key1=value1  
  3. key2=value2  
  4. key3=values  
  5. [composite:pdl]  
  6. use=egg:Paste#urlmap  
  7. /:root  
  8. /calc:calc  
  9. [pipeline:root]  
  10. pipeline = logrequest showversion  
  11. [pipeline:calc]  
  12. pipeline = logrequest calculator  
  13. [filter:logrequest]  
  14. username = root  
  15. password = root123  
  16. paste.filter_factory = pastedeploylab:LogFilter.factory  
  17. [app:showversion]  
  18. version = 1.0.0  
  19. paste.app_factory = pastedeploylab:ShowVersion.factory  
  20. [app:calculator]  
  21. description = This is an "+-*/" Calculator   
  22. paste.app_factory = pastedeploylab:Calculator.factory  


Reference:
1.  http://blog.csdn.net/sonicatnoc/article/details/6539716
2. Python Paste Doc, http://pythonpaste.org/

沒有留言:

張貼留言