国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

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

2020-02-15 22:16:22
字體:
供稿:網(wǎng)友

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

WSGI簡介

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

常見的WSGI容器

WSGI是一個(gè)同步接口,所以Tornado的WSGI容器是無法實(shí)現(xiàn)異步的。主流的選擇是Gunicorn和uWSGI。

Gunicorn

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

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

安裝Gunicorn:

pip install gunicorn

Gunicorn的啟動(dòng)非常簡單,語法如下:

gunicorn [OPTIONS] MODULE_NAME:VARIABLE_NAME

舉個(gè)栗子,manager.py:

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

啟動(dòng)應(yīng)用:

gunicorn manager:app -b 0.0.0.0:9000

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

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

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

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

uWSGI

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

安裝uWSGI

pip install uwsgi

使用uWSGI啟動(dòng)應(yīng)用:
代碼如下:uwsgi --http 0.0.0.0:9000 --wsgi-file manager.py --callable app --processes 4 --threads 2 --stats 0.0.0.0:5000

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

–http-socket–http其實(shí)是完全不同的兩個(gè)選項(xiàng)。如果想直接裸跑uWSGI,應(yīng)該使用

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 曲周县| 曲阳县| 南澳县| 内丘县| 富锦市| 土默特右旗| 四子王旗| 密云县| 阿合奇县| 许昌县| 尼勒克县| 永登县| 山西省| 安阳县| 随州市| 四会市| 全州县| 沈丘县| 九江市| 东阳市| 关岭| 北流市| 合水县| 双柏县| 偃师市| 和政县| 铜陵市| 剑阁县| 客服| 仙游县| 泸定县| 林周县| 子洲县| 黎城县| 华池县| 龙门县| 临夏县| 长丰县| 青冈县| 衡阳市| 丹江口市|