python 的 flask 、django 、tornado 、sanic


flask

 Flask是由python實現的一個web微框架,讓我們可以使用Python語言快速實現一個網站或Web服務

  1. Flask 是輕量級的框架,自由,靈活,可擴展性強,核心基於Werkzeug WSGI工具 和jinja2 模板引擎

  2. 適用於做小網站以及web服務的API,開發大型網站無壓力,但架構需要自己設計

  3. 與關系型數據庫的結合不弱於Django,而與非關系型數據庫的結合遠遠優於Django

django

 Python下有許多款不同的 Web 框架。Django是重量級選手中最有代表性的一位。許多成功的網站和APP都基於Django

  1. Django走的大而全的方向,開發效率高。它的MTV框架,自帶的ORM,admin后台管理,自帶的sqlite數據庫和開發測試用的服務器,給開發者提高了超高的開發效率。 重量級web框架,功能齊全,提供一站式解決的思路,能讓開發者不用在選擇上花費大量時間。

  2. 自帶ORM和模板引擎,支持jinja等非官方模板引擎。

  3. 自帶ORM使Django和關系型數據庫耦合度高,如果要使用非關系型數據庫,需要使用第三方庫

  4. 自帶數據庫管理app

  5. 成熟,穩定,開發效率高,相對於FlaskDjango的整體封閉性比較好,適合做企業級網站的開發。python web框架的先驅,第三方庫豐富

tornado

Tornado就是我們在 FriendFeed 的 Web 服務器及其常用工具的開源版本。Tornado 和現在的主流 Web 服務器框架(包括大多數 Python 的框架)有着明顯的區別:它是非阻塞式服務器,而且速度相當快。得利於其 非阻塞的方式和對epoll的運用,Tornado 每秒可以處理數以千計的連接,因此 Tornado 是實時 Web 服務的一個 理想框架。我們開發這個 Web 服務器的主要目的就是為了處理 FriendFeed 的實時功能 ——在 FriendFeed 的應用里每一個活動用戶都會保持着一個服務器連接。(關於如何擴容 服務器,以處理數以千計的客戶端的連接的問題,請參閱The C10K problem)

  1. Flask 是輕量級的框架,自由,靈活,可擴展性強,核心基於Werkzeug WSGI工具 和jinja2 模板引擎

  2. 適用於做小網站以及web服務的API,開發大型網站無壓力,但架構需要自己設計

  3. 與關系型數據庫的結合不弱於Django,而與非關系型數據庫的結合遠遠優於Django

  4. Tornado 可以承載成千上萬的活動連接, 完美的實現了 長連接WebSockets, 和其他對於每一位用戶來說需要長連接的程序

sanic

 Sanic 既是一個Python web 服務器,又是一個web框架,它為速度而生。Sanic只支持Python 3.5及其以上版本,允許我們使用async/await語法來使我們的代碼非阻塞且快速

 

Python中各自的應用場景?

Django: 主要是用來搞快速開發的,他的亮點就是快速開發,節約成本,,如果要實現高並發的話,就要對django進行二次開發,比如把整個笨重的框架給拆掉自己寫socket實現http的通信,底層用純c,c++寫提升效率,ORM框架給干掉,自己編寫封裝與數據庫交互的框架,ORM雖然面向對象來操作數據庫,但是它的效率很低,使用外鍵來聯系表與表之間的查詢;
 
Flask: 輕量級,主要是用來寫接口的一個框架,實現前后端分離,提考開發效率,Flask本身相當於一個內核,其他幾乎所有的功能都要用到擴展(郵件擴展Flask-Mail,用戶認證Flask-Login),都需要用第三方的擴展來實現。比如可以用Flask-extension加入ORM、文件上傳、身份驗證等。Flask沒有默認使用的數據庫,你可以選擇MySQL,也可以用NoSQL。
其WSGI工具箱用Werkzeug(路由模塊),模板引擎則使用Jinja2,這兩個也是Flask框架的核心。
 
Tornado: Tornado是一種Web服務器軟件的開源版本。Tornado和現在的主流Web服務器框架(包括大多數Python的框架)有着明顯的區別:它是非阻塞式服務器,而且速度相當快。得利於其非阻塞的方式和對epoll的運用,Tornado每秒可以處理數以千計的連接因此Tornado是實時Web服務的一個理想框架


免責聲明!

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



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