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主要做了下面几件事情:

  1. 根据服务器和WSGI服务器产生的environ环境信息,封装一个Request实例,这个实例包含请求的所有信息;

  2. Web应用根据封装的Request实例信息,产生一个Response实例(上述例子只是输出一段字符串)。这个Response实例是一个可调用的WSGI应用;

  3. 上一步骤产生的可调用应用对象response调用response(environ, start_response)生成响应信息并发回客户端。调用函数是由WSGI规范规定的。

以上过程很好地将服务器和web应用分离开来:服务器不用考虑请求信息怎么被解析给web应用,以及后续怎么和web应用通信;web应用也不用考虑怎么将响应信息返回给服务器。服务器要做的只是提供web应用所需的请求信息,web应用提供的也只是响应信息,中间的处理过程werkzeug可以帮助完成。

模块

werkzeug库主要的模块有:

详情可以查看介绍各模块的具体文章。


版权声明

Learn Python by Fan Chunke is licensed under a Creative Commons BY-NC-ND 4.0 International License.

Fan Chunke创作并维护的Learn Python博客采用创作共用保留署名-非商业-禁止演绎4.0国际许可证

本文首发于Learn Python 博客( http://fanchunke.me ),版权所有,侵权必究。


本文永久链接:http://fanchunke.me/Flask/Werkzeug库简介/

坚持原创技术分享,您的支持将鼓励我继续创作!