wsgi介绍
WSGI 的全称是 Web Server Gateway Interface,翻译过来就是Web服务器网关接口。具体的来说,WSGI是一个规范,定义了Web服务器如何与Python应用程序进行交互,使得使用Python写的Web应用程序可以和Web服务器对接起来。
简介的总结下:
- WSGI是一套接口标准协议/规范;
- 通信(作用)区间是Web服务器和Python Web应用程序之间;
- 目的是制定标准,以保证不同Web服务器可以和不同的Python程序之间相互通信
至于为什么需要指定这样一个标准的原因,主要就是为了,提升Web应用在Web Server之间的可移植性。
Abstract
This document specifies a proposed standard interface between web servers and Python web applications or frameworks, to promote web application portability across a variety of web servers.
pep-0333: pep-0333.
wsgi如何生效
对于python 框架来说,实现一个接受两个参数的可调用对象。可以是函数,可以是类实例等等。
ps:(wsgi一般给框架和服务器端使用,开发人员一般专注于应用开发)
- environ environ参数是一个Python的字典,里面存放了所有和客户端相关的信息,这样application对象就能知道客户端请求的资源是什么,请求中带了什么数据等
- start_response: 当application对象根据environ参数的内容执行完业务逻辑后,就需要返回结果给server端。我们知道HTTP的响应需要包含status,headers和body,所以在application对象将body作为返回值return之前,需要先调用start_response(),将status和headers的内容返回给server,这同时也是告诉server,application对象要开始返回body了
# 函数作为可调用对象
def simple_app