Python Web各種框架使用場景?

最近要做一個項目,準備使用python,但是看了那麼多的python框架,在使用場景上有點蒙(Django,twisted,web.py 這種的定位比較清楚)

特別是Tornado , uWSGI, Gevent 這三個,雖然通過google知道了他們高性能的框架,也知道了實現上的不同,但是適用場景還是有點不明白

比如 適合做WEB聊天室,或者遊戲伺服器等。同樣是高性能,網上很多測試,就測試個hello word,我覺的不能說明問題阿。


Twisted 和 Tornado / Gevent 的關係比跟 Django / Web.py 還緊密點。

Twisted / Tornado / Gevent 都是網路框架,直接跟 HTTP 打交道的。uWSGI 也可以跟 HTTP 打交道,也可以通過其它協議跟 Nginx 打交道。

過了網路之後才是邏輯。Twisted / Tornado 上的程序一般是直接用 Twisted / Tornado 提供的 API 寫的。uWSGI / Gevent WSGI 通常接其它的 WSGI 框架,如 Django / web.py 。

所以,寫普通 web 程序,Django / web.py 之間選一個寫;寫好之後,uWSGI / Gevent WSGI 之間選一個,組合起來用;

寫高並髮長連接重 I/O 輕計算的程序,比如 push service / websocket 聊天甚至某些 proxy 之類,Twisted / Tornado / Gevent 里選一個,然後根據框架提供的 API 去寫。這裡需要看你使用的其它 Python 庫有沒有支持對應框架的版本,如果那些庫中出現阻塞網路 I/O 會拖慢整個程序性能。


我也有同感,根本不清楚定位是什麼,實際中有什麼樣的需求才會用這些東西?


推薦閱讀:

十分鐘入門pandas(上)【解讀pandas官方文檔】
[爬蟲,python]應用requests,正則表達式抓取貓眼電影TOP100
Python 會不會替代 MATLAB?
OAuth與第三方登錄API
66頁PPT堪破生活中的數據思維,讓你數據科學之路666

TAG:Python | Tornado | Python框架 | WSGI | gevent |