在Openstack的源码中,除了PasteDeploy外,还有一个和WSGI密切相关的工具包WebOb。官网在这:http://webob.org/
简单的说,WebOb是一个用于对WSGI request环境进行包装(也就是变得易用)以及用于创建WSGI response的一个包。
1.Request
webob.Request是WebOb中的一个重要对象。其会的对WSGI的environ(就是传递给WSGI APP的那个参数)参数进行封装。
一个简单的例子:
1
2
3
4
5
|
from
webob
import
Request
req
=
Request.blank(
'/article?id=1'
)
from
pprint
import
pprint
pprint(req.environ)
|
输出:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
[root@OS_DEV dev]# python webobtest.py
{'HTTP_HOST': 'localhost:80',
'PATH_INFO': '/article',
'QUERY_STRING': 'id=1',
'REQUEST_METHOD': 'GET',
'SCRIPT_NAME': '',
'SERVER_NAME': 'localhost',
'SERVER_PORT': '80',
'SERVER_PROTOCOL': 'HTTP/1.0',
'wsgi.errors': <open file '<stderr>', mode 'w' at 0x7f83c59d21e0>,
'wsgi.input': <io.BytesIO object at 0x7f83c592b590>,
'wsgi.multiprocess': False,
'wsgi.multithread': False,
'wsgi.run_once': False,
'wsgi.url_scheme': 'http',
'wsgi.version': (1, 0)}
|
http://bingotree.cn/?p=109
之前的文章里简单介绍了下Paste,但由于这个Paste比较重要,所以这里再深入学习一下其中的Paste Deploy。Paste Deploy的相关网站是:http://pythonpaste.org/deploy/
1.Paste Deploy的一个组件,但是并不依赖于Paste的其它组件。其可以看成是一个独立的包。其主要用于通过一个配置文件完成WSGI应用和服务器的构建。对于一个不怎么了解Python的人来说,只要知道了这个配置文件如何编写,那么也能写出一个符合WSGI标准的应用。这样说可能还是有点抽象,下面看了例子就清楚了。