Django
主要是用來搞快速開發(fā)的,他的亮點就是快速開發(fā),節(jié)約成本,正常的并發(fā)量不過 10000,如果要實現(xiàn)高并發(fā)的話,就要對 Django 進行二次開發(fā),比如把整個笨重的框架給拆掉,自己寫 socket 實現(xiàn) http 的通信,底層用純 c/c++寫提升效率,ORM 框架給干掉,自己編寫封裝與數(shù)據(jù)庫交互的框架,因為啥呢,ORM 雖然面向?qū)ο髞聿僮鲾?shù)據(jù)庫,但是它的效率很低,使用外鍵來聯(lián)系表與表之間的查詢。
Flask
輕量級,主要是用來寫接口的一個框架,實現(xiàn)前后端分離,提升開發(fā)效率,F(xiàn)lask 本身相當(dāng)于一個內(nèi)核,其他幾乎所有的功能都要用到擴展(郵件擴展 Flask-Mail,用戶認(rèn)證 Flask-Login),都需要用第三方的擴展來實現(xiàn)。比如可以用 Flask-extension 加入 ORM、窗體驗證工具,文件上傳、身份驗證等。Flask 沒有默認(rèn)使用的數(shù)據(jù)庫,你可以選擇 MySQL,也可以用 NoSQL。
其 WSGI 工具箱采用 Werkzeug(路由模塊),模板引擎則使用 Jinja2。這兩個也是 Flask 框架的核心。Python 最出名的框架要數(shù) Django,此外還有 Flask、Tornado 等框架。雖然 Flask 不是最出名的框架,但是 Flask 應(yīng)該算是最靈活的框架之一,這也是 Flask 受到廣大開發(fā)者喜愛的原因。
Tornado
Tornado 是一種 Web 服務(wù)器軟件的開源版本。
Tornado 和現(xiàn)在的主流 Web 服務(wù)器框架(包括大多數(shù) Python 的框架)有著明顯的區(qū)別:它是非阻塞式服務(wù)器,而且速度相當(dāng)快。得利于其非阻塞的方式和對 epoll 的運用,Tornado 每秒可以處理數(shù)以千計的連接,因此 Tornado 是實時 Web 服務(wù)的一個 理想框架。