Python WSGI规定了Web服务器和Python Web应用程序或Web框架之间的标准接口,主要是为了促进Web应用程序在各种Web服务器上的可移植性。
上述这句话翻译自Python官方的PEP333标准:PEP 333 -- Python Web Server Gateway Interface v1.0
WSGI接口概述
WSGI的含义:Web Server Gateway Interface(Web服务器网管接口)。
WSGI接口包含两方面:server/gateway端 及 application/framework端。后面直接使用server和application来说明,不再使用gateway和framework。server端直接调用application端提供的可调用对象。另外在server和application之间还可以有一种称作middleware的中间件。中间件对于server来说就是一个application,但是对于application来说中间件却是一个server。
上述可调用对象是指:函数、方法、类或者带有__call__
方法的实例。
以下分别介绍application端,Server端和middleware三个部分
Application端
函数、方法、类及带有callable方法的实例等可调用对象都可以作为application对象。application对象接受两个参数并且可以被多次调用。
参数
- environ:environ参数是一个字典对象,该对象必须是内置的Python字