Werkzeug库
简介
Werkzeug
是一个Python写成的WSGI
工具集。它遵循WSGI
规范,对服务器和Web应用之间的“中间层”进行了开发,衍生出一系列非常有用的Web服务底层模块。关于Werkzeug
功能的最简单的一个例子如下:
1
2
3
4
5
6
7
8
9
10
|
from werkzeug.wrappers import Request, Response
def application(environ, start_response):
request = Request(environ)
response = Response("Hello %s!" % request.args.get('name', 'World!'))
return response(environ, start_response)
if __name__ == '__main__':
from werkzeug.serving import run_simple
run_simple('localhost', 4000, application)
|
运行上面的例子,当在浏览器输入http://localhost:4000/
就会向本地的服务器发出一个请求。在请求的过程中,werkzeug
主要做了下面几件事情:
-
根据服务器和WSGI服务器产生的
environ
环境信息,封装一个Request
实例,这个实例包含请求的所有信息; -
Web应用根据封装的
Request
实例信息,产生一个Response
实例(上述例子只是输出一段字符串)。这个Response
实例是一个可调用的WSGI
应用; -
上一步骤产生的可调用应用对象
response
调用response(environ, start_response)
生成响应信息并发回客户端。调用函数是由WSGI
规范规定的。
以上过程很好地将服务器和web应用分离开来:服务器不用考虑请求信息怎么被解析给web应用,以及后续怎么和web应用通信;web应用也不用考虑怎么将响应信息返回给服务器。服务器要做的只是提供web应用所需的请求信息,web应用提供的也只是响应信息,中间的处理过程werkzeug
可以帮助完成。
模块
werkzeug
库主要的模块有:
转自: http://fanchunke.me/Flask/Werkzeug%E5%BA%93%E7%AE%80%E4%BB%8B/