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