1. 程式人生 > >Flask之WSGI:Werkzeug

Flask之WSGI:Werkzeug

ask response web 請求 esp tutorial 希望 返回 字符

WSGI

一個Web應用的本質就是:

  1. 瀏覽器發送一個HTTP請求;

  2. 服務器收到請求,生成一個HTML文檔;

  3. 服務器把HTML文檔作為HTTP響應的Body發送給瀏覽器;

  4. 瀏覽器收到HTTP響應,從HTTP Body取出HTML文檔並顯示。

如果要動態生成HTML,就需要把上述步驟自己來實現。不過,接受HTTP請求、解析HTTP請求、發送HTTP響應都是苦力活,如果我們自己來寫這些底層代碼,首先得花個把月去讀HTTP規範。

正確的做法是底層代碼由專門的服務器軟件實現,我們專註於生成HTML文檔。因為我們不希望接觸到TCP連接、HTTP原始請求和響應格式,所以,需要一個統一的接口,讓我們專心編寫Web業務。

這個接口就是WSGI:Web Server Gateway Interface。

接口對應的實現函數應包括兩個參數:

  • environ:一個包含所有HTTP請求信息的dict對象;

  • start_response:一個發送HTTP響應的函數。

例子:

技術分享圖片

其中 start_response發送兩個參數:1、字符串:http狀態碼;2、列表:由HTTP Header組成的元組列表

最後返回為body正文內容。

用python內置的wsgi服務器運行:

技術分享圖片

技術分享圖片

Werkzeug

參考  http://werkzeug.pocoo.org/docs/0.14/tutorial/#step-3-the-environment

Flask之WSGI:Werkzeug