WSGI的理解與示例

2021-06-20 12:39:08 字數 2797 閱讀 7174

wsgi 是乙個 web 元件的介面規範.,wsgi將 web 元件分為三類: web伺服器,web中介軟體,web應用程式,下圖來自ibm developerworks,很好的說明了三者之間的關係。

下面分別來看這三個元件

通過這個圖可以看出來wsgi server 基本工作流程

伺服器建立socket,監聽埠,等待客戶端連線。

當有請求來時,伺服器解析客戶端資訊放到環境變數environ中,並呼叫繫結的handler來處理請求。

handler解析這個http請求,將請求資訊例如method,path等放到environ中。

wsgi handler再將一些伺服器端資訊也放到environ中,最後伺服器資訊,客戶端資訊,本次請求資訊全部都儲存到了環境變數environ中。

最終handler還是通過socket將response資訊塞回給客戶端。

訪問 就能看到效果了。

經過這些middleware的包裝,已經有點框架的感覺了。其實基於wsgi的框架,例如paste,pylons就是這樣通過一層層middleware組合起來的。只是乙個成熟的框架,這樣的middleware會有很多,例如:

return errorhandlermiddleware(

sessionmiddleware(

identificationmiddleware(

authenticationmiddleware(

只要這些middleware符合wsgi規範,甚至還可以在各個框架之間組合重用。例如pylons的認證middleware可以直接被turbogears拿去使用。

WSGI應用示例

wsgi python web server grateway inte ce 任何乙個實現了wsgi應用都可以執行在實現了wsgi協議的伺服器上,在沒有wsgi的話會限制我們對應用框架的選擇。伺服器和應用不再具有強關聯。wsgi應用是乙個接受兩個引數的可呼叫的物件。兩個引數 1 environ引數...

WSGI與ASGI的區別與聯絡

區別cgi common gateway inte ce,通用閘道器介面 定義客戶端與web伺服器的交流方式的乙個程式,例如正常情況下客戶端傳送過來乙個請求,根據http協議web伺服器將請求的內容解析出來,經過處理會後,再將返回的內容封裝好。例如伺服器返回乙個html頁面,並且根據http協議構建...

Python 裝飾器的理解與示例

coding utf8 import os import pdb 裝飾器的使用場景 和優勢之處在 適用於 乙個功能模組反覆被應用時候 可以 用裝飾器封裝 與其它模組一起 完成特定化的需求 優勢之處 裝飾器 可以不修改之前的 保證業務執行的穩定 增加乙個裝飾器的函式完成新增加的需求 func 放在 被...