首頁  >  文章  >  後端開發  >  python WSGI Application原理是什麼

python WSGI Application原理是什麼

王林
王林轉載
2023-05-19 13:25:131216瀏覽

本篇文章所依賴的python環境為:

python WSGI Application原理是什么

#什麼是WSGI

##WSGI也稱之為web伺服器通用網關接口,全名為web server gateway interface。它定義了在pythonweb伺服器與web應用程式之間應該如何通訊並且處理http請求和回應的一個標準,注意,它只是一個協議,或者說是規範、標準,你也可以不按這個標準來,就像我們上一篇文章所寫的web伺服器那樣。

WSGI 也分為應用程式和伺服器網關, 其中我們熟知的Flask就是屬於應用程式,uWSGIwsgiref 屬於伺服器網關。

個人感覺,

WSGI避免了造輪子,事情讓更擅長的人去做,寫伺服器的,那就寫符合WSGI規範的伺服器就好,如果是寫應用端的,就寫符合WSGI規範應用就好。不用在重複的寫輪子。

除此之外,

WSGI還能與傳統web伺服器對接,例如: nginxapache等進行互動。

python WSGI Application原理是什么

WSGI對應用程式規定了什麼

WSGI中規定了其應用程式必須是一個可被呼叫的物件,通常來說,該物件是一個函數或一個類別。該物件必須接收2個參數,分別是environ字典 和 start_response函數,並且在物件結束前,應該呼叫start_response函數。而函數應該傳參statusheaders,其中status應該定義回應狀態碼以及片語,headers應該定義回應頭。

如果用程式碼來闡述的話,應該是這樣來寫的:

def application(environ, start_response):
    status = '200 OK'
    headers = [('Content-type', 'text/plain')]
    start_response(status, headers)
    return [b'Hello, world!']

其中,

application是一個可迭代的對象,接受了2個參數,一個是environ,其類型是字典,還是一個是start_response,其類型是函數,在application結束前,應該呼叫start_response函數,並且傳入statusheaders值。

修改程式碼寫出符合WSGI標準的web業務層

我們昨天寫的程式碼,將傳回一個

Hello, Destined Person.,我們來看下,如果我們使用WSGI標準來寫入業務層,我們應該如何定義,並且如何呼叫WSGI#伺服器。

python WSGI Application原理是什么

上述,我們引入了一個符合

WSGI的伺服器: wsgiref.simple_server,我們只需按照WSGI 的標準來寫業務層,也就是上述的application即可。我們在定義狀態碼的時候,估計將其設為299 OK,在設定請求頭的時候,設定了一個Serverpdudo_web_sites

我們使用

curl請求伺服器。

python WSGI Application原理是什么

發現,哦,只要按照

WSGI規格來書寫,就可以很輕容的寫一個簡單的伺服器。

以上是python WSGI Application原理是什麼的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:yisu.com。如有侵權,請聯絡admin@php.cn刪除