Python WSGI概述(更新ing)

2017-10-20  本文已影响0人  向杨垫下

PEP-0333 -- Python Web Server Gateway Interface v1.0

说明

WSGI是一种规范,描述web server和web application通信的规范。要实现WSGI协议,必须同时实现web server和web application。WSGI的目的就是规范Web服务器和应用(框架)之间的交互。

WSGI 规定每个 python 程序(Application)必须是一个可调用的对象(实现了call 函数的方法或者类),接受两个参数 environ(WSGI 的环境信息) 和 start_response(开始响应请求的函数),并且返回 iterable。
几点说明:

应用,服务器,中间件

WSGI environ 变量

Example:

>>> from webob import Request
>>> from pprint import pprint
>>> req = Request.blank("/article?id=1")
>>> req
<Request at 0x7f965014e550 GET http://localhost/article?id=1>
>>> pprint(req.environ)
{'HTTP_HOST': 'localhost:80',
 'PATH_INFO': '/article',
 'QUERY_STRING': 'id=1',
 'REQUEST_METHOD': 'GET',
 'SCRIPT_NAME': '',
 'SERVER_NAME': 'localhost',
 'SERVER_PORT': '80',
 'SERVER_PROTOCOL': 'HTTP/1.0',
 'wsgi.errors': <open file '<stderr>', mode 'w' at 0x7f96529cf1e0>,
 'wsgi.input': <_io.BytesIO object at 0x7f965013db30>,
 'wsgi.multiprocess': False,
 'wsgi.multithread': False,
 'wsgi.run_once': False,
 'wsgi.url_scheme': 'http',
 'wsgi.version': (1, 0)}

wsgiref+Webob+Routs+Paste+PasteDeploy

wsgiref 是实现wsgi规范的模块,提供了操作WSGI环境变量和response头的工具,并还实现了一个WSGI服务器

Webob 提供了封装后的WSGI请求(Request)环境,并辅助创建WSGI响应(Response

Routes 提供是管理URL路由的模块

Paste

PasteDeploy

Paste.ini文件解析

上一篇 下一篇

猜你喜欢

热点阅读