web应用本质上来说就是:
浏览器发送一个HTTP请求;
服务器收到请求,生成一个HTML文档;
服务器把HTML文档作为HTTP响应的Body发送给浏览器;
浏览器收到HTTP响应,从HTTP Body取出HTML文档并显示。
[0]我们要生成一个动态的web应用.如果由自己来写底层代码就太麻烦了.所以python提供了一个统一的接口,让我m只需要处理浏览器的请求,而不用去管各种协议.这个接口就是WGSI.
下面的代码就是利用wsgiref模块创建一个服务器,监听浏览器的请求,并且作出回应.
from wsgiref.simple_server import make_server
def application(environ, start_response):
start_response('200 OK', [('Content-Type', 'text/html')])
body = r'<h1>Hello, %s!</h1>'%(environ['PATH_INFO'][1:] or 'web')
return [body.encode('utf-8')]
httpd = make_server('127.0.0.1', 8000, application)
print('Serving HTTP on port 8000...')
httpd.serve_forever()
wsgi接受一个处理函数,这个处理函数接受两个参数:一个是HTTP响应码,一个是一组list表示的HTTP Header,每个Header用一个包含两个str的tuple表示。HTTP请求的所有输入信息都可以通过environ获得,HTTP响应的输出都可以通过start_response()加上函数返回值作为Body。 |