本文實(shí)例講述了Python Web編程之WSGI協(xié)議。分享給大家供大家參考,具體如下:
Web框架和Wen服務(wù)器之間需要進(jìn)行通信,如果在設(shè)計(jì)時(shí)它們之間無(wú)法相互匹配,那么對(duì)框架的選擇就會(huì)限制對(duì)Web服務(wù)器的選擇,這顯然是不合理的。這時(shí)候需要設(shè)計(jì)一套雙方都遵守的接口。WSGI是Python Web Server Gateway Interface的簡(jiǎn)稱。WSGI標(biāo)準(zhǔn)在PEP 333中定義并被許多框架實(shí)現(xiàn),它規(guī)定了一種在Web服務(wù)器之間具有可移植性。在后來(lái)的PEP 3333中添加了Python 3的支持和更多相關(guān)的說(shuō)明。有了通用的WSGI協(xié)議,Web開發(fā)者就能夠任意選擇適合自己的組合,而Web服務(wù)器和Web框架的開發(fā)者們也能夠把精力集中到各自的領(lǐng)域。
常見的WSGI容器WSGI是一個(gè)同步接口,所以Tornado的WSGI容器是無(wú)法實(shí)現(xiàn)異步的。主流的選擇是Gunicorn和uWSGI。
GunicornGunicorn易于配置,兼容性好,CPU消耗很少,在豆瓣使用廣泛。它支持多種Worker模式,推薦的模式有如如下幾種:
安裝Gunicorn:
pip install gunicorn