欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

淺析Python?WSGI的使用

 更新時(shí)間:2023年04月26日 08:52:09   作者:真的不能告訴你我的名字  
WSGI也稱(chēng)之為web服務(wù)器通用網(wǎng)關(guān)接口,全稱(chēng)是web?server?gateway?interface。這篇文章主要為大家介紹了Python?WSGI的使用,希望對(duì)大家有所幫助

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

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

什么是WSGI

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

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

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

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

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

WSGI中規(guī)定了其應(yīng)用程序必須是一個(gè)可被調(diào)用的對(duì)象,通常來(lái)說(shuō),該對(duì)象是一個(gè)函數(shù)或者是一個(gè)類(lèi)。 該對(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)碼以及短語(yǔ),headers應(yīng)該定義響應(yīng)頭。

如果用代碼來(lái)闡述的話(huà),應(yīng)該是這樣來(lái)寫(xiě)的:

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,其類(lèi)型是字典,還是一個(gè)是start_response,其類(lèi)型是函數(shù),在application結(jié)束前,應(yīng)該調(diào)用start_response函數(shù),并且傳入statusheaders值。

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

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

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()

上述,我們引入了一個(gè)符合WSGI的服務(wù)器: wsgiref.simple_server,我們僅需按照WSGI的標(biāo)準(zhǔn)來(lái)編寫(xiě)業(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ī)范來(lái)書(shū)寫(xiě),就可以很輕容的寫(xiě)一個(gè)簡(jiǎn)單的服務(wù)器。

總結(jié)

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

到此這篇關(guān)于淺析Python WSGI的使用的文章就介紹到這了,更多相關(guān)Python WSGI內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Django中間件實(shí)現(xiàn)攔截器的方法

    Django中間件實(shí)現(xiàn)攔截器的方法

    今天小編就為大家分享一篇Django中間件實(shí)現(xiàn)攔截器的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-06-06
  • python 對(duì)象真假值的實(shí)例(哪些視為False)

    python 對(duì)象真假值的實(shí)例(哪些視為False)

    這篇文章主要介紹了python 對(duì)象真假值的實(shí)例(哪些視為False),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-12-12
  • 基于python生成詞云圖的代碼示例

    基于python生成詞云圖的代碼示例

    這篇文章主要個(gè)介紹了如何基于python生成詞云圖的代碼示例,文中有詳細(xì)的代碼示例喝圖文講解,對(duì)大家的學(xué)習(xí)或工作有一定的幫助,需要的朋友可以參考下
    2023-11-11
  • Python操作Word批量生成文章的方法

    Python操作Word批量生成文章的方法

    這篇文章主要介紹了Python操作Word批量生成文章的方法,需要的朋友可以參考下
    2015-07-07
  • Python 類(lèi)與元類(lèi)的深度挖掘 II【經(jīng)驗(yàn)】

    Python 類(lèi)與元類(lèi)的深度挖掘 II【經(jīng)驗(yàn)】

    元類(lèi)在 Python 中屬于比較深層的黑魔法,在一般的日常應(yīng)用中可能并不常用,但理解其背后的原理對(duì)于理解 Python 面向?qū)ο缶幊桃约耙磺薪詾閷?duì)象的理念很有幫助;如果你需要對(duì)類(lèi)進(jìn)行深度改造,至少要知道從何入手。
    2016-05-05
  • 初識(shí)python的numpy模塊

    初識(shí)python的numpy模塊

    這篇文章主要介紹了初識(shí)python的numpy模塊,Numpy基于更加現(xiàn)代化的編程語(yǔ)言--python,python憑借著開(kāi)源、免費(fèi)、靈活性、簡(jiǎn)單易學(xué)、工程特性好等特點(diǎn)風(fēng)靡技術(shù)圈,已經(jīng)成為機(jī)器學(xué)習(xí)、數(shù)據(jù)分析等領(lǐng)域的主流編程語(yǔ)言,需要的朋友可以參考下
    2022-05-05
  • python實(shí)現(xiàn)反轉(zhuǎn)部分單向鏈表

    python實(shí)現(xiàn)反轉(zhuǎn)部分單向鏈表

    這篇文章主要為大家詳細(xì)介紹了python實(shí)現(xiàn)反轉(zhuǎn)部分單向鏈表,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-09-09
  • 使用Python的xlwings操作Excel的屬性和方法

    使用Python的xlwings操作Excel的屬性和方法

    這篇文章主要介紹了使用Python的xlwings操作Excel的屬性和方法,xlwings?是?Python?操作?Excel?的庫(kù)之一,主要作為兩門(mén)語(yǔ)言的交互工具,是python?操作excel比較成熟、杰出的庫(kù),調(diào)用簡(jiǎn)單方便,而且功能強(qiáng)大,需要的朋友可以參考下
    2023-07-07
  • Python中無(wú)限元素列表的實(shí)現(xiàn)方法

    Python中無(wú)限元素列表的實(shí)現(xiàn)方法

    這篇文章主要介紹了Python中無(wú)限元素列表的實(shí)現(xiàn)方法,很實(shí)用的功能,需要的朋友可以參考下
    2014-08-08
  • 使用python爬取taptap網(wǎng)站游戲截圖的步驟

    使用python爬取taptap網(wǎng)站游戲截圖的步驟

    這篇文章主要介紹了使用python爬取taptap游戲截圖的步驟,幫助大家更好的理解和學(xué)習(xí)使用python進(jìn)行爬蟲(chóng),感興趣的朋友可以了解下
    2021-05-05

最新評(píng)論