中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Python?WSGI怎么使用

發布時間:2023-04-26 10:00:21 來源:億速云 閱讀:92 作者:iii 欄目:開發技術

這篇文章主要介紹“Python WSGI怎么使用”的相關知識,小編通過實際案例向大家展示操作過程,操作方法簡單快捷,實用性強,希望這篇“Python WSGI怎么使用”文章能幫助大家解決問題。

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

Python?WSGI怎么使用

什么是WSGI

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

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

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

除此之外,WSGI還能與傳統web服務器對接,例如: nginxapache等進行交互。

Python?WSGI怎么使用

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

import wsgiref.simple_server

def application(environ,start_response):
    status = "299 OK"
    headers = [("Content-type","text/html"),("Server","pdudo_web_sites")]
    start_response(status ,headers)
    
    return [b'Hello, Destined person."]
    
s = wsgiref.simple_server.make_server('',8888,application)
s .serve_forever()

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

我們使用curl請求一下服務器。

Python?WSGI怎么使用

發現,哦,只要按照WSGI規范來書寫,就可以很輕容的寫一個簡單的服務器。

關于“Python WSGI怎么使用”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識,可以關注億速云行業資訊頻道,小編每天都會為大家更新不同的知識點。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

海南省| 商水县| 阳春市| 金溪县| 麟游县| 海丰县| 嘉定区| 裕民县| 思茅市| 平湖市| 万州区| 鄂托克前旗| 册亨县| 青海省| 肥东县| 惠东县| 东乡| 灯塔市| 桂林市| 红原县| 库尔勒市| 微博| 杭锦旗| 德化县| 四子王旗| 博野县| 改则县| 淳化县| 恩施市| 桐柏县| 肥乡县| 尼勒克县| 昭平县| 乐陵市| 隆化县| 修文县| 高唐县| 桃园市| 眉山市| 行唐县| 宜春市|