Django框架,Flask框架和Tornado框架各有什麼優缺點

奈學教育發表於2020-07-28

Django:Python 界最全能的 web 開發框架,battery-include 各種功能完備,可維護性和開發速度一級棒。常有人說 Django 慢,其實主要慢在 Django ORM 與資料庫的互動上,所以是否選用 Django,取決於專案對資料庫互動的要求以及各種最佳化。而對於 Django 的同步特性導致吞吐量小的問題,其實可以透過 Celery 等解決,倒不是一個根本問題。Django 的專案代表:Instagram,Guardian。

Tornado:天生非同步,效能強悍是 Tornado 的名片,然而 Tornado 相比 Django 是較為原始的框架,諸多內容需要自己去處理。當然,隨著專案越來越大,框架能夠提供的功能佔比越來越小,更多的內容需要團隊自己去實現,而大專案往往需要效能的保證,這時候 Tornado 就是比較好的選擇。Tornado專案代表:知乎。

Flask:微框架的典範,號稱 Python 程式碼寫得最好的專案之一。Flask 的靈活性,也是雙刃劍:能用好 Flask 的,可以做成 Pinterest,用不好就是災難(顯然對任何框架都是這樣)。Flask 雖然是微框架,但是也可以做成規模化的 Flask。加上 Flask 可以自由選擇自己的資料庫互動元件(通常是 Flask-SQLAlchemy),而且加上 celery +redis 等非同步特性以後,Flask 的效能相對 Tornado 也不逞多讓,也許Flask 的靈活性可能是某些團隊更需要的。


一、Django

主要特點是大而全,整合了很多元件,例如: Models Admin Form 等等, 不管你用得到用不到,反正它全都有,屬於全能型框架

優點:

大和全(重量級框架)

自帶orm,template,view

需要的功能也可以去找第三方的app

注重高效開發

全自動化的管理後臺(只需要使用起ORM,做簡單的定義,就能自動生成資料庫結構,全功能的管理後臺)

session功能

缺點:

template不怎麼好用(來自自身的缺點)

資料庫用nosql不方便(來自自身的缺點)

如果功能不多,容易臃腫


二、Torando

主要特點是原生非同步非阻塞,在IO密集型應用和多工處理上佔據絕對性的優勢,屬於專注型框架

優點:

少而精(輕量級框架)

注重效能優越,速度快

解決高併發(請求處理是基於回撥的非阻塞呼叫)

非同步非阻塞

websockets 長連線

內嵌了HTTP伺服器

單執行緒的非同步網路程式,預設啟動時根據CPU數量執行多個例項;利用CPU多核的優勢

自定義模組

缺點:

模板和資料庫部分有很多第三方的模組可供選擇,這樣不利於封裝為一個功能模組


三、Flask

主要特點小而輕,原生元件幾乎為0, 三方提供的元件請參考Django 非常全面,屬於短小精悍型框架

優點:

簡單,Flask的路由以及路由函式由修飾器設定,開發人員不需要藉助其他檔案匹配;

配置靈活,有多種方法配置,不同環境的配置也非常方便;環境部署簡單,Flask執行不需要藉助其他任何軟體,只需要安裝了Python的IDE,在命令列執行即可。只需要在Python中匯入相應包即可滿足所有需求;

入門簡單,透過官方指南便可以清楚的瞭解Flask的執行流程;

低耦合,Flask可以相容多種資料庫、模板。

缺點:

對於大型網站開發,需要設計路由對映的規則,否則導致程式碼混亂


本文來源於:

奈學開發者社群,如有侵權請聯絡我刪除


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69976011/viewspace-2707589/,如需轉載,請註明出處,否則將追究法律責任。

相關文章