Web服务器网关接口(Python Web Server Gateway Interface,缩写为WSGI)是为Python语言定义的Web服务器和Web应用程序或框架之间的一种简单而通用的接口。
WSGI有两方:「服务器」或「网关」一方,以及「应用程序」或「应用框架」一方。服务方调用应用方,提供环境信息,以及一个回调函数(提供给应用程序用来将消息头传递给服务器方),并接收Web内容作为返回值。
在Python中有一个WSGI模块——wsgiref。它是用纯Python编写的WSGI服务器的参考实现。所谓「参考实现」是指该实现完全符合WSGI标准,但是不考虑任何运行效率,仅供开发和测试使用。
下面附上一份学习WSGI的代码清单,可以运行在Python 2.7以及3.5。
# coding=utf-8
from wsgiref.simple_server import make_server, demo_app
def application(environ, start_response):
start_response('200 OK', [('Content-Type', 'text/html')])
return [('Hello, %s!
' % (environ['PATH_INFO'][1:] or 'web')).encode('utf-8')]
if __name__ == '__main__':
#httpd = make_server('', 8000, demo_app)
httpd = make_server(host='', port=8000, app=application)
print("Serving HTTP on port 8000...")
httpd.serve_forever()