WSGI(Web Server Gateway Interface)

WSGI是WEB服务网关接口的缩写,是为Python语言定义的Web服务器和Web应用程序之间一种简单而通用的接口。它没有具体的实现,更像是一个标准协议,具体可以去PEP333了解。

简单说来,它是一个连接用户应用和Web服务器的桥梁,有点类似Apache的CGI。

简单例子

下面是来自PEP333的一个简单例子

def simple_app(environ, start_response):
    """Simplest possible application object"""
    status = '200 OK'
    response_headers = [('Content-type','text/plain')]
    start_response(status, response_headers)
    return ['Hello world!n']

我们可以看出,这个例子里就是输出了一个基本Web页面的body和header。其中environ就是把环境变量啥的一起丢进来,而start_response就像rpc一样负责响应这次请求。接下来看一下能运行的代码:

from wsgiref.simple_server import make_server

def my_app(environ, start_response):
    """a simple wsgi application"""
    status = '200 OK'
    response_headers = [('Content-type', 'text/plain')]
    start_response(status, response_headers)
    return ["hello world"]

httpd = make_server('', 8000, my_app)
print "Serving on port 8000..."
httpd.serve_forever()

访问localhost:8000即可看到hello world显示了出来,这就是一个wsgi的简单例子了