最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

python帶你探尋WSGI?Application原理

 更新時(shí)間:2023年04月26日 09:42:30   作者:真的不能告訴你我的名字  
這篇文章主要為大家介紹了python學(xué)習(xí)探尋WSGI?Application原理詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪

引言

第一次了解pythonWSGI,可能描述的不太準(zhǔn)確。

本篇文章所依賴的python環(huán)境為:

什么是WSGI

WSGI也稱之為web服務(wù)器通用網(wǎng)關(guān)接口,全稱是web server gateway interface。它定義了在pythonweb服務(wù)器與web應(yīng)用程序之間應(yīng)該如何通信并且處理http請(qǐng)求和響應(yīng)的一個(gè)標(biāo)準(zhǔn),注意,它只是一個(gè)協(xié)議,或者說是規(guī)范、標(biāo)準(zhǔn),你也可以不按這個(gè)標(biāo)準(zhǔn)來,就像我們上一篇文章所寫的web服務(wù)器那樣。

WSGI 也分為應(yīng)用程序 和 服務(wù)器網(wǎng)關(guān), 其中我們熟知的Flask就是屬于應(yīng)用程序,uWSGI、wsgiref屬于服務(wù)器網(wǎng)關(guān)。

個(gè)人感覺,WSGI避免了造輪子,事情讓更擅長(zhǎng)的人去做,寫服務(wù)器的,那就寫符合WSGI規(guī)范的服務(wù)器就好,如果是寫應(yīng)用端的,就寫符合WSGI規(guī)范應(yīng)用就好。不用在重復(fù)的寫輪子。

除此之外,WSGI還能與傳統(tǒng)web服務(wù)器對(duì)接,例如: nginxapache等進(jìn)行交互。

WSGI對(duì)應(yīng)用程序規(guī)定了什么

WSGI中規(guī)定了其應(yīng)用程序必須是一個(gè)可被調(diào)用的對(duì)象,通常來說,該對(duì)象是一個(gè)函數(shù)或者是一個(gè)類。 該對(duì)象必須接收2個(gè)參數(shù),分別是environ字典 和 start_response函數(shù),并且在對(duì)象結(jié)束前,應(yīng)該調(diào)用start_response函數(shù)。而函數(shù)應(yīng)該傳參statusheaders,其中status應(yīng)該定義響應(yīng)狀態(tài)碼以及短語,headers應(yīng)該定義響應(yīng)頭。

如果用代碼來闡述的話,應(yīng)該是這樣來寫的:

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

其中,application是一個(gè)可迭代的對(duì)象,接受了2個(gè)參數(shù),一個(gè)是environ,其類型是字典,還是一個(gè)是start_response,其類型是函數(shù),在application結(jié)束前,應(yīng)該調(diào)用start_response函數(shù),并且傳入statusheaders值。

修改代碼寫出符合WSGI標(biāo)準(zhǔn)的web業(yè)務(wù)層

我們昨天寫的代碼,將返回一個(gè)Hello, Destined Person.,我們來看下,如果我們使用WSGI標(biāo)準(zhǔn)來寫業(yè)務(wù)層,我們應(yīng)該如何定義,并且如何調(diào)用WSGI服務(wù)器。

上述,我們引入了一個(gè)符合WSGI的服務(wù)器: wsgiref.simple_server,我們僅需按照WSGI的標(biāo)準(zhǔn)來編寫業(yè)務(wù)層,也就是上述的application即可。我們?cè)诙x狀態(tài)碼的時(shí)候,估計(jì)將其設(shè)置為299 OK,在設(shè)置請(qǐng)求頭的時(shí)候,設(shè)置了一個(gè)Serverpdudo_web_sites。

我們使用curl請(qǐng)求一下服務(wù)器。

發(fā)現(xiàn),哦,只要按照WSGI規(guī)范來書寫,就可以很輕容的寫一個(gè)簡(jiǎn)單的服務(wù)器。

總結(jié)

本篇文章,介紹了什么是WSGI以及現(xiàn)在程序員寫pythonweb框架為什么要符合WSGI,最后我們寫了一個(gè)業(yè)務(wù)函數(shù),將其放到符合WSGI標(biāo)準(zhǔn)的服務(wù)器wsgiref上。文章寫的很亂,不是很好。

以上就是python探尋WSGI Application原理的詳細(xì)內(nèi)容,更多關(guān)于python探尋WSGI Application的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • Python如何使用內(nèi)置庫(kù)matplotlib繪制折線圖

    Python如何使用內(nèi)置庫(kù)matplotlib繪制折線圖

    這篇文章主要介紹了Python如何使用內(nèi)置庫(kù)matplotlib繪制折線圖,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-02-02
  • 用Python編寫一個(gè)高效的端口掃描器的方法

    用Python編寫一個(gè)高效的端口掃描器的方法

    這篇文章主要介紹了用Python編寫一個(gè)高效的端口掃描器的方法,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-12-12
  • Python中實(shí)現(xiàn)繪制動(dòng)態(tài)旋轉(zhuǎn)的星形

    Python中實(shí)現(xiàn)繪制動(dòng)態(tài)旋轉(zhuǎn)的星形

    結(jié)合matplotlib和numpy創(chuàng)建動(dòng)態(tài)五角星動(dòng)畫,步驟包括安裝庫(kù)、編寫代碼和運(yùn)行腳本,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-11-11
  • Python入門之模塊與包

    Python入門之模塊與包

    這篇文章主要為大家介紹了Python的模塊與包,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2021-12-12
  • python黑魔法之參數(shù)傳遞

    python黑魔法之參數(shù)傳遞

    這篇文章主要介紹了python黑魔法之參數(shù)傳遞,分析了python參數(shù)傳遞的方法,感興趣的小伙伴們可以參考一下
    2016-02-02
  • 淺談FastAPI到底用不用async問題

    淺談FastAPI到底用不用async問題

    這篇文章主要介紹了FastAPI到底用不用async問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-06-06
  • Django實(shí)現(xiàn)基于類的分頁(yè)功能

    Django實(shí)現(xiàn)基于類的分頁(yè)功能

    這篇文章主要為大家詳細(xì)介紹了Django實(shí)現(xiàn)基于類的分頁(yè)功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-10-10
  • Python Pycharm虛擬下百度飛漿PaddleX安裝報(bào)錯(cuò)問題及處理方法(親測(cè)100%有效)

    Python Pycharm虛擬下百度飛漿PaddleX安裝報(bào)錯(cuò)問題及處理方法(親測(cè)100%有效)

    最近很多朋友給小編留言在安裝PaddleX的時(shí)候總是出現(xiàn)各種奇葩問題,不知道該怎么處理,今天小編通過本文給大家介紹下Python Pycharm虛擬下百度飛漿PaddleX安裝報(bào)錯(cuò)問題及處理方法,真的有效,遇到同樣問題的朋友快來參考下吧
    2021-05-05
  • tesserocr與pytesseract模塊的使用方法解析

    tesserocr與pytesseract模塊的使用方法解析

    這篇文章主要介紹了tesserocr與pytesseract模塊的使用方法解析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-08-08
  • Python使用Bokeh進(jìn)行交互式數(shù)據(jù)可視化

    Python使用Bokeh進(jìn)行交互式數(shù)據(jù)可視化

    Bokeh是一個(gè)Python庫(kù),用于在Web瀏覽器中創(chuàng)建交互式數(shù)據(jù)可視化,這篇文章主要為大家學(xué)習(xí)介紹了如何使用Bokeh實(shí)現(xiàn)回執(zhí)交互式數(shù)據(jù)可視化圖表,感興趣的可以學(xué)習(xí)一下
    2023-07-07

最新評(píng)論

鄂州市| 美姑县| 诸城市| 天等县| 宜丰县| 玛沁县| 饶河县| 南涧| 万山特区| 格尔木市| 安顺市| 金华市| 闸北区| 威远县| 民县| 青海省| 独山县| 北川| 宁安市| 兴宁市| 西宁市| 邮箱| 阳西县| 稻城县| 西乡县| 大石桥市| 公安县| 蕲春县| 饶平县| 永兴县| 从化市| 绵竹市| 石楼县| 吴桥县| 常熟市| 滨州市| 鸡东县| 霍州市| 囊谦县| 安阳市| 金山区|