‘‘‘
WSGI就是将socket链接进一步封装,从而实现开发人员仅需考虑逻辑业务的书写
详细原理:
第一步:浏览器向服务器发送请求,数据包中包含HTTP报文头部+请求数据
第二步:WSGI Server将请求数据(os.environ,请求头, WSGI信息)拆包,封装成一个environ字典
第三步:WSGI Server将environ、start_reponse函数作为参数传递给用户自定义的 WSGI APP 函数
第四步:用户自定义的WSGI APP函数进行加工和逻辑业务处理后,返回正文
第五步:浏览器根据接收的正文,构建HTML页面
PS:
environ是一个字典,其中包含os.environ的全部信息、浏览器的请求头、WSGI信息等
start_reponse函数需要传递两个参数,[‘200 OK‘, [(k,v),...]]
WSGI APP 需要返回一个正文,且数据格式为字典 return [正文1(bytes), 正文2(bytes),...]
所需方法:
from wsgiref.simple_server import make_server
def WSGI_APP(environ, start_response):
start_response(‘200 OK‘, [(‘Content-Type‘, ‘text/html‘), (‘Charset‘, ‘utf-8‘)])
return [bytes, bytes,...]
s = make_server(‘ip‘, port, WSGI_APP)
s.httpd.socket.getsockname().print
s.serve_forver()
‘‘‘
原文:https://www.cnblogs.com/zhangzhuowei/p/14850335.html