初識WSGI接口

WSGI

WSGI全稱爲Web Server Gateway Interface,WSGI容許web框架和web服務器分開,能夠混合匹配web服務器和web框架,選擇一個適合的配對。好比,能夠在Gunicorn 或者 Nginx/uWSGI 或者 Waitress上運行 Django, Flask, 或 Pyramid。html

web服務器必須具有wsgi接口,全部的現代Python web框架都以具有wsgi接口,它不讓你對代碼做修改就能使服務器和web框架協同工做。java

其餘語言也有相似的接口:java中的servletpython

定義WSGI接口

WSGI接口的定義很是簡單,它只是要求web開發者實現一個函數,就能夠相應http請求。咱們來看一個最簡單的Web版本的「Hello, World!」:web

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服務器來調用。服務器

相關文章
相關標籤/搜索