WSGI partⅡ

WSGI应用接口

WSGI应用接口要求,应用必须有是一个可调用对象,即拥有 __call__() 方法,这个应用可以是:函数,方法,类或实例。同时,这个应用必须满足:

  • 接收2个参数:environstart_response
  • 在发送响应正文之前必须调用 start_response 回调函数
  • 必须返回一个可迭代的正文

一个简单 WSGI 应用示例:


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

WSGI服务器

如何启动上面的应用呢? 可以选择一个WSGI服务器来调用,如果只是想在本地测试,可以使用 wsgiref,下面是一个简单的示例:


if __name__ == '__main__':
    from wsgiref.simple_server import make_server
    srv = make_server('localhost', 8080, application)
    srv.serve_forever()

将这两段代码放在同一个文件里,并将文件命名为application.py,在终端里输入python application.py,再打开浏览器,输入http://localhost:8080/就可以看到页面上显示的 Hello world 了。
ctrl+C可以终止服务器。

这样就完成了一个简单的WSGI应用程序和调用。