這篇文章主要講解了“WSGI有什么作用”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“WSGI有什么作用”吧!
10余年的肥西網(wǎng)站建設經驗,針對設計、前端、開發(fā)、售后、文案、推廣等六對一服務,響應快,48小時及時工作處理。全網(wǎng)整合營銷推廣的優(yōu)勢是能夠根據(jù)用戶設備顯示端的尺寸不同,自動調整肥西建站的顯示方式,使網(wǎng)站能夠適用不同顯示終端,在瀏覽器中調整網(wǎng)站的寬度,無論在任何一種瀏覽器上瀏覽網(wǎng)站,都能展現(xiàn)優(yōu)雅布局與設計,從而大程度地提升瀏覽體驗。創(chuàng)新互聯(lián)從事“肥西網(wǎng)站設計”,“肥西網(wǎng)站推廣”以來,每個客戶項目都認真落實執(zhí)行。
一個完整的 Web 應用包含兩部分,一個是服務器程序(Server),一個是應用程序(Application),服務器程序負責接收瀏覽器發(fā)送過來的請求,應用程序負責處理具體的業(yè)務邏輯。 比如我基于 Django 框架開發(fā)一個博客應用,部署在生產環(huán)境時會用 Gunicorn 或者 Uwsgi 作為服務器程序。
Python 中 Web 框架非常多,F(xiàn)lask、Django、Bottle、Pyramid、Tornado 等等,甚至你也自己也可以造一個 Web 框架,那么這么多框架,為什么他們都可以用 Gunicorn 或者 Uwsgi 來部署呢?
答案就是 WSGI 規(guī)范。
WSGI 不是框架,也不是一個模塊,而是介于 Web應用程序(Web框架)與 Web Server 之間交互的一種規(guī)范。只要大家都遵循WSGI規(guī)范實現(xiàn) Web 框架,就可以 使用 Gunicorn 來運行,規(guī)范最早在 PEP333 中被提出。
WSGI 規(guī)定了Web服務器(Server)和應用程序(Application)雙方各自需要實現(xiàn)什么接口,以便兩者能完美的配合使用,這個和 USB Type-C 規(guī)范很像, 只要手機和充電線都遵循了 Type-C 接口規(guī)范, 大家的充電線就可以復用,不同的是充電誰快誰慢的問題,而蘋果沒有遵循Type-C規(guī)范,所以只有他自家的線才能充蘋果手機。
現(xiàn)在你應該差不多理解什么是WSGI了,那么 WSGI 對應用程序是如何規(guī)范的呢? 很簡單,你只需要寫一個符合以下格式的函數(shù)即可:
def app(environ, start_response):
start_response("200 OK", [("Content-Type","text/html")])
return ["Hello world!\n"]
這個函數(shù)必須接收兩個參數(shù),environ 是一個類似字典的數(shù)據(jù)結構,封裝了瀏覽器的請求數(shù)據(jù)。 start_response 是一個函數(shù),必須在app 里面調用,參數(shù)就是狀態(tài)碼和響應內容的類型。app 的返回值就是請求的響應數(shù)據(jù)。 最終 app 是被 server 來調用的。
現(xiàn)在我們用 Python 內建的 http server 來啟動這個程序
from wsgiref.simple_server import make_server
if __name__ == "__main__":
httpd = make_server("", 8000, app)
print("Serving http on port 8000")
httpd.serve_forever()
啟動,訪問地址:
感謝各位的閱讀,以上就是“WSGI有什么作用”的內容了,經過本文的學習后,相信大家對WSGI有什么作用這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是創(chuàng)新互聯(lián),小編將為大家推送更多相關知識點的文章,歡迎關注!
分享文章:WSGI有什么作用
文章路徑:http://aaarwkj.com/article38/pjsosp.html
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站營銷、企業(yè)網(wǎng)站制作、域名注冊、靜態(tài)網(wǎng)站、企業(yè)建站、ChatGPT
聲明:本網(wǎng)站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)