欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

初识WSGI接口

程序员文章站 2022-05-04 13:05:32
WSGI WSGI全称为 Web Server Gateway Interface ,WSGI允许web框架和web服务器分开,可以混合匹配web服务器和web框架,选择一个适合的配对。比如,可以在Gunicorn 或者 Nginx/uWSGI 或者 Waitress上运行 Django, Flas ......

wsgi

wsgi全称为web server gateway interface,wsgi允许web框架和web服务器分开,可以混合匹配web服务器和web框架,选择一个适合的配对。比如,可以在gunicorn 或者 nginx/uwsgi 或者 waitress上运行 django, flask, 或 pyramid。

web服务器必须具备wsgi接口,所有的现代python web框架都以具备wsgi接口,它不让你对代码作修改就能使服务器和web框架协同工作。

其他语言也有类似的接口:java中的servlet

定义wsgi接口

wsgi接口的定义非常简单,它只是要求web开发者实现一个函数,就可以相应http请求。我们来看一个最简单的web版本的“hello, world!”:

def application(environ, start_response):
    start_response('200 ok', [('content-type', 'text/html')])
    return 'hello world!'

上面的 application() 函数就是符合wsgi标准的一个http处理函数,它接收两个参数:

  • environ:一个包含所有http请求信息的一个字典对象。
  • start_response:一个发送http响应的函数,它接收两个参数:
    • http响应码。
    • 一组list表示的http header,每个header用一个包含两个str的tuple表示。

函数的返回值hello, world!将作为http响应的body发送给浏览器。
application()函数必须由wsgi服务器来调用。