Flask之WSGI:Werkzeug

Posted brendy

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Flask之WSGI:Werkzeug相关的知识,希望对你有一定的参考价值。

WSGI

一个Web应用的本质就是:

  1. 浏览器发送一个HTTP请求;

  2. 服务器收到请求,生成一个html文档;

  3. 服务器把HTML文档作为HTTP响应的Body发送给浏览器;

  4. 浏览器收到HTTP响应,从HTTP Body取出HTML文档并显示。

如果要动态生成HTML,就需要把上述步骤自己来实现。不过,接受HTTP请求、解析HTTP请求、发送HTTP响应都是苦力活,如果我们自己来写这些底层代码,首先得花个把月去读HTTP规范。

正确的做法是底层代码由专门的服务器软件实现,我们专注于生成HTML文档。因为我们不希望接触到TCP连接、HTTP原始请求和响应格式,所以,需要一个统一的接口,让我们专心编写Web业务。

这个接口就是WSGI:Web Server Gateway Interface。

接口对应的实现函数应包括两个参数:

  • environ:一个包含所有HTTP请求信息的dict对象;

  • start_response:一个发送HTTP响应的函数。

例子:

技术分享图片

 

其中 start_response发送两个参数:1、字符串:http状态码;2、列表:由HTTP Header组成的元组列表

最后返回为body正文内容。

用python内置的wsgi服务器运行:

技术分享图片

技术分享图片

 

 

Werkzeug 

 参考  http://werkzeug.pocoo.org/docs/0.14/tutorial/#step-3-the-environment

以上是关于Flask之WSGI:Werkzeug的主要内容,如果未能解决你的问题,请参考以下文章

深入学习Flask框架之视图及路由

Flask之表单操作

Flask启动流程

Flask -- 01. werkzeug请求与响应以及源码的解析

flask之路由

Flask安装