最近JETBRAINS釋出了目前最受歡迎的python-web開發架構,可以看到最受歡迎的還是Django和Flask,那麼本文就對上榜的12個架構進行分類整理,一起來看看吧!

目錄
- 全棧架構
- Django
- Pyramid
- TurboGears
- Web2py
- 微型架構
- Flask
- Bottle
- CherryPy
- Falcon
- Hug
- FastAPI
- 異步架構
- Sanic
- Tornado
- 其他
- Dash
Django
GitHub stars:47078
Django是高水準的Python程式設計語言驅動的一個開源模型.視圖,控制器風格的Web應用程式架構,它起源于開源社群。使用這種架構,程式員可以友善、快捷地建立高品質、易維護、資料庫驅動的應用程式。另外,在Django架構中,還包含許多功能強大的第三方插件,使得Django具有較強的可擴充性。那麼Django憑什麼能獨占鳌頭呢:
- 完善的ORM關系映射
- 強大的路由映射功能
- 完善的視圖模闆的實作
- 健全的背景管理系統
- 強大的緩存支援
GitHub https://github.com/django
Pyramid
GitHub stars:3216
Pyramid是一個基于Python的開放源代碼,也是第二個值得注意的Web應用程式架構。其目标是以最小的複雜度來盡可能多地完成更多任務。Pyramid 1.10是架構的目前版本,并且是自2010年以來的第十次更新。那麼Pyramid有以下特點:
- 單個檔案的應用程式
- 通用的URL
- 可擴充的配置
- 各種各樣的模闆
- 靈活的身份驗證和授權
- 測試、支援和全面的資料文檔
TurboGears
GitHub stars:654
TurboGears是一個開源的,資料驅動的全棧Web應用程式架構。它建立在許多中間件和許多庫的基礎上,是以可以快速開發可擴充的資料驅動的Web應用程式。它擁有友好的模闆引擎以及一個強大而靈活的ORM和可重複使用的代碼片段。除了使設計師的工作更輕松的出色模闆系統外,TurboGears還提供了很多靈活性,強大的聚合支援,TurboGears的一些獨特功能包括:
- 多資料庫支援
- MVC風格的架構
- 支援SQLObject和SQLAlchemy
- 使用FormEncode進行驗證
- 基于WSGI的前端伺服器
- 指令行工具
- MochiKit JavaScript庫內建
Web2py
GitHub stars:1798
Web2py是可擴充的開源全棧Python架構。在處理資料時,它非常強大。Web2py最初是作為教學工具提供的,重點是易用性。Web2py的優點是它帶有自己的基于Web的IDE,其中包括代碼編輯器,調試器和一鍵式部署。Web2py的其他重要功能包括:
- 無需安裝和配置
- 能夠在Windows,Mac,Linux / Unix,Google App Engine,Amazon EC2以及任何支援Python 2.5–2.7或Java + Python的網絡托管上運作
- 多種協定的可讀性
- 資料安全性可防止跨站點腳本編寫,注入漏洞和惡意檔案執行等漏洞
- 成功采用軟體工程實踐,使代碼易于閱讀和維護
Flask
GitHub stars:49380
Flask是一個輕量級的可定制架構,較其他同類型架構更為靈活、輕便、安全且容易上手。它可以很好地結合MVC模式進行開發,開發人員分工合作,小型團隊在短時間内就可以完成功能豐富的中小型網站或Web服務的實作。其強大的插件庫可以讓使用者實作個性化的網站定制,開發出功能強大的網站。它包括許多有用的現成功能:
- 内置開發伺服器和快速調試器
- 內建的單元測試支援
- 安全cookie支援
- 符合WSGI 1.0
- 基于Unicode
- 能夠插入任何ORM
Bottle
GitHub stars:6349
Bottle是一個微架構。Bottle最初意在建構API,它在單個源檔案中實作所有功能。除了Python标準庫外,它沒有依賴項。使用Bottle進行編碼比使用任何全棧架構進行編碼更穩定。但是,隻有編寫一個很小的應用程式(最多500行代碼且無特殊要求)時,Bottle才是較好的選擇。它的預設功能包括路由,模闆,實用程式以及基于WSGI标準的基本抽象。
- 路由 :支援對函數調用映射的請求
- 模闆 :一個現成的快速Pythonic 模闆引擎,并全面支援mako和inja2
- 實用程式 :輕松通路表單資料,檔案上傳,Cookie
- 伺服器 :一個内置的HTTP伺服器的發展,支援fapws3
CherryPy
GitHub stars:1057
CherryPy是一個開放源代碼的簡約Web架構。它使建構Python Web應用程式與建構任何其他面向對象的程式沒有什麼不同。但基于CherryPy的Web應用程式是一個獨立的Python應用程式,它嵌入了自己的多線程Web伺服器。借助自己的Web伺服器,擴充點包括請求-響應周期之外的功能,進而增加了CherryPy的可擴充性。CherryPy的一些預設功能包括:
- 強大的配置系統
- 靈活的插件系統
- 現成的緩存,編碼,會話,認證,靜态内容等工具
- 内置對性能分析,覆寫率和測試的支援
- 能夠在Python 2.7 +,Python 3.1 +,PyPy,Jython和Android上運作
Falcon
GitHub stars:7500
Falcon是一個Python Web API架構,用于建構非常快速的應用程式後端。該架構的徽标是獵鷹,象征着獵鷹的工作速度。該架構允許開發人員制定更簡潔的設計并處理大多數請求。Falcon未限制開發人員選擇資料庫和授權庫。Falcon其他的功能有:
- 全面的測試套件可實作100%的代碼覆寫率
- 高度優化的代碼庫
- 前期異常處理
- 通過中間件元件處理DRY請求
- 通用的HTTP錯誤響應
- 通過WSGI幫助器進行單元測試
Hug
GitHub stars:5955
Hug是一個Python 3 API開發架構。它的設計使軟體工程師可以一次開發API,然後在需要時再使用它。Hug架構通過提供各種接口來簡化API開發。這就是為什麼該架構被稱為Python 3中最快的架構之一的主要原因。hug的主要特點:
- 支援自動文檔
- 注釋驅動的驗證
- 内置版本管理
- 遵守cython
- 可以當作python庫使用
FastAPI
GitHub stars:10900
FastAPI是基于Python的現代架構。它最初被設計為易于使用,以確定最佳的開發體驗。迄今為止,FastAPI是使用Python 3.6+建構API最快的架構之一。該架構具有Flask的幾個特征,包括其簡單性。整個架構基于Starlette建構,并包含其大部分功能(模闆,WebSocket和GraphQL支援)。FastAPI架構提供:
- 開發速度提高200%至300%
- 減少40%的錯誤
- 調試時間更少
- 減少代碼重複
- 自動互動式文檔
Sanic
GitHub stars:13511
Sanic是一個基于uvloop的Python Web架構,專門針對通過異步請求處理的快速HTTP響應而建立。它可以在Python 3.5+上運作。Sanic支援異步請求處理程式,這使其與Python 3.5的async / await函數相容。這提高了速度,提供了非阻塞功能。由于Sonic具有路由,中間件,cookie,版本控制,靜态檔案,藍圖,基于類的視圖和套接字,是以被認為是首選的異步架構。但是,它不提供資料庫支援和模闆。
Tornado
GitHub stars:18293
Tornado是一個Python web架構和異步網絡庫,側重于速度和處理大量流量的能力。它使用非阻塞網絡I/O,解決了C10k問題(這意味着,如果正确配置,它可以處理10,000多個并發連接配接)。這使得它成為建構需要高性能和成千上萬并發使用者的應用程式的好工具。
- 内置對使用者身份驗證的支援
- 實時服務
- 高品質的表現
- 基于Python的Web模闆語言
- 實施第三方身份驗證和授權方案(Google OpenID / OAuth,Facebook登入,Yahoo BBAuth,FriendFeed OpenID / OAuth,Twitter OAuth)
Dash
GitHub stars:11000
Dash是一個用于建構分析性web應用程式的開源Python架構。對于不太熟悉web開發的Python資料科學家來說,這尤其有用。Dash有兩個特點:
- 僅使用Python代碼建構高度互動的應用程式。
- 使用Python工具來操作資料變得非常簡單。