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

Python Web編程之WSGI協(xié)議簡介

 更新時間:2018年07月18日 10:38:01   作者:噴跑的豆子  
這篇文章主要介紹了Python Web編程之WSGI協(xié)議,簡單說明了WSGI的概念、功能并結(jié)合實例形式分析了Gunicorn和uWSGI相關(guān)實現(xiàn)技巧,需要的朋友可以參考下

本文實例講述了Python Web編程之WSGI協(xié)議。分享給大家供大家參考,具體如下:

WSGI簡介

Web框架和Wen服務器之間需要進行通信,如果在設計時它們之間無法相互匹配,那么對框架的選擇就會限制對Web服務器的選擇,這顯然是不合理的。這時候需要設計一套雙方都遵守的接口。WSGI是Python Web Server Gateway Interface的簡稱。WSGI標準在PEP 333中定義并被許多框架實現(xiàn),它規(guī)定了一種在Web服務器之間具有可移植性。在后來的PEP 3333中添加了Python 3的支持和更多相關(guān)的說明。有了通用的WSGI協(xié)議,Web開發(fā)者就能夠任意選擇適合自己的組合,而Web服務器和Web框架的開發(fā)者們也能夠把精力集中到各自的領域。

常見的WSGI容器

WSGI是一個同步接口,所以Tornado的WSGI容器是無法實現(xiàn)異步的。主流的選擇是GunicornuWSGI。

Gunicorn

Gunicorn易于配置,兼容性好,CPU消耗很少,在豆瓣使用廣泛。它支持多種Worker模式,推薦的模式有如如下幾種:

  • 同步Worker:默認模式,也就是一次只處理一個請求
  • 異步Worker:通過Eventlet、Gevent實現(xiàn)的異步模式
  • 異步IO Worker:目前支持gthread和gaiohttp兩種類型

安裝Gunicorn:

pip install gunicorn

Gunicorn的啟動非常簡單,語法如下:

gunicorn [OPTIONS] MODULE_NAME:VARIABLE_NAME

舉個栗子,manager.py:

from flask import Flask
app = Flask(__name__)
@app.route("/")
def hello_world():
  return "Hello World"
if __name__ == "__main__":
  app.run()

啟動應用:

gunicorn manager:app -b 0.0.0.0:9000

亦或者指定Worker數(shù)量啟動:

gunicorn --workers=3 manager:app -b 0.0.0.0:9000

app為Flask實例的名稱,Worker的數(shù)量推薦值是CPU的個數(shù)*2+1,CPU個數(shù)使用如下的方式獲取:

python -c 'import multiprocessing; print multiprocessing.cpu_count()'

uWSGI

uWSGI是使用C編寫的,顯示了自有的uwsgi協(xié)議的Web服務器。它自帶豐富的組件,其中核心組件包含進程管理、監(jiān)控、IPC等功能,實現(xiàn)應用服務器接口的請求插件支持多種語言和平臺,比如WSGI、Rack、Lua WSAPI,網(wǎng)管組件實現(xiàn)了負載均衡、代理和理由功能。

安裝uWSGI

pip install uwsgi

使用uWSGI啟動應用:

復制代碼 代碼如下:
uwsgi --http 0.0.0.0:9000 --wsgi-file manager.py --callable app --processes 4 --threads 2 --stats 0.0.0.0:5000

上面的命令表示啟動了4個進程,每個進程使用2個線程,而且開啟了5000的Web接口,返回監(jiān)控uWSGI的信息,一級不同進程和線程的詳細使用情況。使用uWSGI有兩點十分重要:

–http-socket–http其實是完全不同的兩個選項。如果想直接裸跑uWSGI,應該使用–http,它產(chǎn)生一個額外的進程將請求轉(zhuǎn)發(fā)給Workers,如果希望它被反向代理(比如和Nginx一起使用),應該使用–http-socket。

合理的進程數(shù)和線程數(shù)不能簡單的通過CPU * 2來計算得出,需要不斷的嘗試而找到最佳值。

uWSGI命令常用參數(shù)如下:

參數(shù)名 含義
–http 協(xié)議類型和端口號
–processes 開啟的進程數(shù)量
–callable uWSGI加載的模塊哪個變量將被調(diào)用
–workers 開啟的進行數(shù)量,等同于processes
–chdir 指定運行目錄
–wsgi-file 載入wsgi-file(加載wsgi.py文件)
–stats 在指定的地址上開啟狀態(tài)服務
–threads 開啟的線程數(shù)量
–master 允許主進程存在
–daemonize 使進程在后臺運行,并將日志輸出到指定的日志文件或者UDP服務器
–pidfile 指定PID文件的位置,記錄主進程的PID號
–vacuum 當服務器退出時自動清理環(huán)境,刪除Unix Socket文件和PID文件

更多關(guān)于Python相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《Python Socket編程技巧總結(jié)》、《Python URL操作技巧總結(jié)》、《Python數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Python函數(shù)使用技巧總結(jié)》、《Python字符串操作技巧匯總》及《Python入門與進階經(jīng)典教程

希望本文所述對大家Python程序設計有所幫助。

相關(guān)文章

  • python圖像處理之鏡像實現(xiàn)方法

    python圖像處理之鏡像實現(xiàn)方法

    這篇文章主要介紹了python圖像處理之鏡像實現(xiàn)方法,實例分析了鏡像的實現(xiàn)原理與具體操作方法,需要的朋友可以參考下
    2015-05-05
  • 基于numpy中數(shù)組元素的切片復制方法

    基于numpy中數(shù)組元素的切片復制方法

    今天小編就為大家分享一篇基于numpy中數(shù)組元素的切片復制方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-11-11
  • Python基于time模塊表示時間常用方法

    Python基于time模塊表示時間常用方法

    這篇文章主要介紹了Python基于time模塊表示時間常用方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-06-06
  • python獲取多線程及子線程的返回值

    python獲取多線程及子線程的返回值

    這篇文章主要介紹了python獲取多線程及子線程的返回值的相關(guān)資料,需要的朋友可以參考下
    2017-11-11
  • Python實現(xiàn)從多表格中隨機抽取數(shù)據(jù)

    Python實現(xiàn)從多表格中隨機抽取數(shù)據(jù)

    這篇文章主要介紹了如何基于Python語言實現(xiàn)隨機從大量的Excel表格文件中選取一部分數(shù)據(jù),并將全部文件中隨機獲取的數(shù)據(jù)合并為一個新的Excel表格文件的方法,希望對大家有所幫助
    2023-05-05
  • Python列表list的詳細用法介紹

    Python列表list的詳細用法介紹

    這篇文章主要介紹了Python列表list的詳細用法介紹,列表(list)作為Python中基本的數(shù)據(jù)結(jié)構(gòu),是存儲數(shù)據(jù)的容器,相當于其它語言中所說的數(shù)組
    2022-07-07
  • 利用python解決mysql視圖導入導出依賴的問題

    利用python解決mysql視圖導入導出依賴的問題

    這篇文章主要給大家介紹了關(guān)于利用python解決mysql視圖導入導出依賴的問題,文中通過示例代碼介紹的非常詳細,對大家學習或者使用python具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧。
    2017-12-12
  • Python解析pcap文件示例

    Python解析pcap文件示例

    這篇文章主要為大家介紹了Python解析pcap文件示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-07-07
  • Python疫情數(shù)據(jù)可視化分析

    Python疫情數(shù)據(jù)可視化分析

    這篇文章主要介紹了Python疫情數(shù)據(jù)可視化分析,本數(shù)據(jù)集主要涉及到全球疫情統(tǒng)計,包括確診、治愈、死亡、時間、國家、地區(qū)等信息,需要的朋友可以參考一下
    2022-07-07
  • Python數(shù)據(jù)結(jié)構(gòu)與算法之列表(鏈表,linked list)簡單實現(xiàn)

    Python數(shù)據(jù)結(jié)構(gòu)與算法之列表(鏈表,linked list)簡單實現(xiàn)

    這篇文章主要介紹了Python數(shù)據(jù)結(jié)構(gòu)與算法之列表(鏈表,linked list)簡單實現(xiàn),具有一定參考價值,需要的朋友可以了解下。
    2017-10-10

最新評論

西林县| 五家渠市| 双牌县| 肃宁县| 铜陵市| 昭通市| 孝感市| 田林县| 重庆市| 上林县| 朝阳区| 冷水江市| 大冶市| 鸡泽县| 望奎县| 湖北省| 阿坝县| 浙江省| 定西市| 牡丹江市| 舞阳县| 内黄县| 海淀区| 三原县| 呼玛县| 闻喜县| 双城市| 东丽区| 福贡县| 赤水市| 卓资县| 喜德县| 邵武市| 雷波县| 沙河市| 洱源县| 津市市| 永定县| 马龙县| 扎兰屯市| 郴州市|