python框架(flask/django/tornado)比較


一、對外數據接口

三者作為web框架,都是通過url映射對外的接口

flask:以decorator的形式,映射到函數中

django:以字典形式,映射到函數

tornado: 以字典形式,映射到類中

flask的接口散落在整個app文件中,多了的話,稍微不易於管理;django單獨集中在url.py文件中,挺好。

對於接口簡單(如cms系統),映射到函數,簡單明了;對於復雜的接口(富應用的web app),映射到類,更適合面向對象編程。

 

二、可擴展性

flask:作為微型框架,它可以自由組配外部功能模塊,如orm、template機制等

django:作為大而全框架,它幾乎不可能組配其他外部功能模塊,但是可以增加豐富它的Middlerware/contrib等

tornado:接近flask

 

三、代碼層次結構

作為framwork,三者的架構基本都是一個callable的App類為核心,

django對使用者,呈現的是mvc結構。比較符合現在的主流。當然flask/tornado都容易做到mvc,只是額外增加工作量。

 

四、開發效率

flask:由於它協助完成功能很少,除非是小型應用,否則它開發效率比較大

django:大而全的框架,完成了session/orm/等。如果考慮安全性在內,對於一般網站,它的開發效率是非常高的。

tornado:介於flask、django之間。由於沒有session機制,所以開發效率也不低。但它原生實現了websocket,所以對於開發需要很多長連接的web應用,會比較快。

 

五、並發能力

flask:內容很少,對於大應用,性能如何,很大程度看后面人員如何擴展

django:由於代碼量大,而且又是同步的,所以抗壓能力很弱

tornado:異步框架,性能相對好

實際上,生產時候,都是把framework通過nginx/gevent部署,而tornado對於前面二者來說,並發性能也沒有優勢。

 

總體而言:

flask適合用於小型應用開發;如果開發團隊能力強,也可以用來做大中型應用

django適合應用用於訪問量不大的大中型應用

tornado適合用於開發長連接多的web應用。比如股票信息推送、網絡聊天等。

 

 

參考:http://www.pythonfan.org/thread-5578-1-1.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM