python学习笔记(4)_WSGI接口

 

WSGI:web server gateway interface

最简单的web应用就是先把html用文件保存好,用现成的http服务器软件(Apache,Nginx,Lighttpd等)来接收用户请求,从中读取html,返回。

对于tcp连接,html请求解析最好让专门服务器软件实现,我们只需要专注于生成HTML文档,所以需要一个统一的接口,让我们编写web业务。 他就是WSGI 

WSGI只要求实现一个函数application()就能相应html请求,他由WSGI服务器调用。python有内置WSGI服务器,在wsgiref模块,他仅供开发和测试,效率没有优化。

 

application(environ,start_response)接收两个参数

environ:包含所有HTTP请求的dict对象。

start_response:发送HTTP响应的函数。

 

start_response('200 OK',[('Content-Type','text/html')]) 只能调用一次,两个参数,一个是HTTP响应码,一个是list表示HTTP header,每个header用一个包含两个str的tuple表示。

from wsgiref.simple_server import make_server

def application(environ,start_response):
    start_response('200 OK',[('Content-Type','text/html')])
    return [b'<h1>hello</h1>']

httpd=make_server('', 8000, application)
print('start')
httpd.serve_forever()

可以从environ中读取PATH_INFO: 

environ['PATH_INFO'][1:] 

这样使用localhost:8000/Ivan 就可通过上面读取到Ivan

 

 

以上内容摘自http://www.liaoxuefeng.com/

纯粹是为了看的更仔细...

你可能感兴趣的:(python学习笔记(4)_WSGI接口)