1 什么是WSGI ?
Python Web 开发中,服务端程序可以分为两个部分,一是服务器程序(把客户端请求接收,整理),二是应用程序(具体的逻辑处理)。为了方便应用程序的开发,我们把常用的功能封装起来,成为各种Web开发框架,例如 Django, Flask, Tornado。为了统一支持多种不同的框架,便需要一个标准。服务器程序支持这个标准,框架也支持这个标准,这就是The Web Server Gateway Interface, 即 WSGI. 。它实际上是一种约定。
特点:WSGI需要使得middleware,middleware处于服务器程序与应用程序之间,对用户请求的处理,可以变成多个 middleware 叠加在一起,每个middleware实现不同的功能。
2 WSGI规定的内容:应用程序&服务器程序
A 应用程序 :应用程序需要是一个可调用对象;可调用对象接收两个参数 ;返回一个可迭代的值
B 服务器程序:需要调用应用程序
3 middleware
有些功能可能介于服务器程序和应用程序之间,例如,服务器拿到了客户端请求的URL, 不同的URL需要交由不同的函数处理,这个功能叫做 URL Routing,这个功能就可以放在二者中间实现,这个中间层就是 middleware。middleware需要把自己伪装成一个服务器,接受应用程序,调用它,同时middleware还需要把自己伪装成一个应用程序,传给服务器程序。