最近JETBRAINS發(fā)布了目前最受歡迎的python-web開發(fā)框架亲桥,可以看到最受歡迎的還是Django和Flask,那么本文就對(duì)上榜的12個(gè)框架進(jìn)行分類整理固耘,一起來看看吧题篷!
對(duì)編程感興趣,對(duì)Python感興趣厅目,可以關(guān)注我噢·~私信可以免費(fèi)獲得Python編程學(xué)習(xí)資料~
目錄
全椃叮框架
Django
Pyramid
TurboGears
Web2py
微型框架
Flask
Bottle
Cherry
PyFalcon
Hug
FastAPI
異步框架
Sanic
Tornado
其他
Dash
Django
GitHub stars:47078
Django是高水準(zhǔn)的Python編程語言驅(qū)動(dòng)的一個(gè)開源模型.視圖,控制器風(fēng)格的Web應(yīng)用程序框架损敷,它起源于開源社區(qū)葫笼。使用這種架構(gòu),程序員可以方便拗馒、快捷地創(chuàng)建高品質(zhì)路星、易維護(hù)、數(shù)據(jù)庫(kù)驅(qū)動(dòng)的應(yīng)用程序诱桂。另外洋丐,在Django框架中,還包含許多功能強(qiáng)大的第三方插件挥等,使得Django具有較強(qiáng)的可擴(kuò)展性友绝。那么Django憑什么能獨(dú)占鰲頭呢:
完善的ORM關(guān)系映射
強(qiáng)大的路由映射功能
完善的視圖模板的實(shí)現(xiàn)
健全的后臺(tái)管理系統(tǒng)
強(qiáng)大的緩存支持
GitHub https://github.com/django
Pyramid
GitHub stars:3216
Pyramid是一個(gè)基于Python的開放源代碼,也是第二個(gè)值得注意的Web應(yīng)用程序框架肝劲。其目標(biāo)是以最小的復(fù)雜度來盡可能多地完成更多任務(wù)迁客。Pyramid 1.10是框架的當(dāng)前版本,并且是自2010年以來的第十次更新辞槐。那么Pyramid有以下特點(diǎn):
單個(gè)文件的應(yīng)用程序
通用的URL
可擴(kuò)展的配置
各種各樣的模板
靈活的身份驗(yàn)證和授權(quán)
測(cè)試掷漱、支持和全面的數(shù)據(jù)文檔
TurboGears
GitHub stars:654
TurboGears是一個(gè)開源的,數(shù)據(jù)驅(qū)動(dòng)的全棧Web應(yīng)用程序框架催蝗。它建立在許多中間件和許多庫(kù)的基礎(chǔ)上切威,因此可以快速開發(fā)可擴(kuò)展的數(shù)據(jù)驅(qū)動(dòng)的Web應(yīng)用程序育特。它擁有友好的模板引擎以及一個(gè)強(qiáng)大而靈活的ORM和可重復(fù)使用的代碼片段丙号。除了使設(shè)計(jì)師的工作更輕松的出色模板系統(tǒng)外,TurboGears還提供了很多靈活性缰冤,強(qiáng)大的聚合支持犬缨,TurboGears的一些獨(dú)特功能包括:
多數(shù)據(jù)庫(kù)支持
MVC風(fēng)格的架構(gòu)
支持SQLObject和SQLAlchemy
使用FormEncode進(jìn)行驗(yàn)證
基于WSGI的前端服務(wù)器
命令行工具
MochiKit JavaScript庫(kù)集成
Web2py
GitHub stars:1798
Web2py是可擴(kuò)展的開源全棧Python框架。在處理數(shù)據(jù)時(shí)棉浸,它非常強(qiáng)大怀薛。Web2py最初是作為教學(xué)工具提供的,重點(diǎn)是易用性迷郑。Web2py的優(yōu)點(diǎn)是它帶有自己的基于Web的IDE枝恋,其中包括代碼編輯器创倔,調(diào)試器和一鍵式部署。Web2py的其他重要功能包括:
無需安裝和配置
能夠在Windows焚碌,Mac畦攘,Linux / Unix,Google App Engine十电,Amazon EC2以及任何支持Python 2.5–2.7或Java + Python的網(wǎng)絡(luò)托管上運(yùn)行
多種協(xié)議的可讀性
數(shù)據(jù)安全性可防止跨站點(diǎn)腳本編寫知押,注入漏洞和惡意文件執(zhí)行等漏洞
成功采用軟件工程實(shí)踐,使代碼易于閱讀和維護(hù)
Flask
GitHub stars:49380
Flask是一個(gè)輕量級(jí)的可定制框架鹃骂,較其他同類型框架更為靈活台盯、輕便、安全且容易上手畏线。它可以很好地結(jié)合MVC模式進(jìn)行開發(fā)静盅,開發(fā)人員分工合作,小型團(tuán)隊(duì)在短時(shí)間內(nèi)就可以完成功能豐富的中小型網(wǎng)站或Web服務(wù)的實(shí)現(xiàn)寝殴。其強(qiáng)大的插件庫(kù)可以讓用戶實(shí)現(xiàn)個(gè)性化的網(wǎng)站定制温亲,開發(fā)出功能強(qiáng)大的網(wǎng)站。它包括許多有用的現(xiàn)成功能:
內(nèi)置開發(fā)服務(wù)器和快速調(diào)試器
集成的單元測(cè)試支持
安全cookie支持
符合WSGI 1.0
基于Unicode
能夠插入任何ORM
Bottle
GitHub stars:6349
Bottle是一個(gè)微框架杯矩。Bottle最初意在構(gòu)建API栈虚,它在單個(gè)源文件中實(shí)現(xiàn)所有功能。除了Python標(biāo)準(zhǔn)庫(kù)外史隆,它沒有依賴項(xiàng)魂务。使用Bottle進(jìn)行編碼比使用任何全棧框架進(jìn)行編碼更穩(wěn)定泌射。但是粘姜,只有編寫一個(gè)很小的應(yīng)用程序(最多500行代碼且無特殊要求)時(shí),Bottle才是較好的選擇熔酷。它的默認(rèn)功能包括路由孤紧,模板,實(shí)用程序以及基于WSGI標(biāo)準(zhǔn)的基本抽象拒秘。
路由?:支持對(duì)函數(shù)調(diào)用映射的請(qǐng)求
模板?:一個(gè)現(xiàn)成的快速Pythonic 模板引擎号显,并全面支持mako和inja2
實(shí)用程序?:輕松訪問表單數(shù)據(jù),文件上傳躺酒,Cookie
服務(wù)器?:一個(gè)內(nèi)置的HTTP服務(wù)器的發(fā)展押蚤,支持fapws3
CherryPy
GitHub stars:1057
CherryPy是一個(gè)開放源代碼的簡(jiǎn)約Web框架。它是構(gòu)建Python Web應(yīng)用程序與構(gòu)建任何其他面向?qū)ο蟮某绦驔]有什么不同羹应。但基于CherryPy的Web應(yīng)用程序是一個(gè)獨(dú)立的Python應(yīng)用程序揽碘,它嵌入了自己的多線程Web服務(wù)器。借助自己的Web服務(wù)器,擴(kuò)展點(diǎn)包括請(qǐng)求-響應(yīng)周期之外的功能雳刺,從而增加了CherryPy的可擴(kuò)展性劫灶。CherryPy的一些默認(rèn)功能包括:
強(qiáng)大的配置系統(tǒng)
靈活的插件系統(tǒng)
現(xiàn)成的緩存,編碼掖桦,會(huì)話浑此,認(rèn)證,靜態(tài)內(nèi)容等工具
內(nèi)置對(duì)性能分析滞详,覆蓋率和測(cè)試的支持
能夠在Python 2.7 +凛俱,Python 3.1 +,PyPy料饥,Jython和Android上運(yùn)行
Falcon
GitHub stars:7500
Falcon是一個(gè)Python Web API框架蒲犬,用于構(gòu)建非常快速的應(yīng)用程序后端岸啡。該框架的徽標(biāo)是獵鷹原叮,象征著獵鷹的工作速度。該框架允許開發(fā)人員制定更簡(jiǎn)潔的設(shè)計(jì)并處理大多數(shù)請(qǐng)求巡蘸。Falcon未限制開發(fā)人員選擇數(shù)據(jù)庫(kù)和授權(quán)庫(kù)奋隶。Falcon其他的功能有:
全面的測(cè)試套件可實(shí)現(xiàn)100%的代碼覆蓋率
高度優(yōu)化的代碼庫(kù)
前期異常處理
通過中間件組件處理DRY請(qǐng)求
通用的HTTP錯(cuò)誤響應(yīng)
通過WSGI幫助器進(jìn)行單元測(cè)試
Hug
GitHub stars:5955
Hug是一個(gè)Python 3 API開發(fā)框架。它的設(shè)計(jì)使軟件工程師可以一次開發(fā)API悦荒,然后在需要時(shí)再使用它唯欣。Hug框架通過提供各種接口來簡(jiǎn)化API開發(fā)。這就是為什么該框架被稱為Python 3中最快的框架之一的主要原因搬味。hug的主要特點(diǎn):
支持自動(dòng)文檔
注釋驅(qū)動(dòng)的驗(yàn)證
內(nèi)置版本管理
遵守cython
可以當(dāng)作python庫(kù)使用
FastAPI
GitHub stars:10900
FastAPI是基于Python的現(xiàn)代框架境氢。它最初被設(shè)計(jì)為易于使用,以確保最佳的開發(fā)體驗(yàn)碰纬。迄今為止萍聊,F(xiàn)astAPI是使用Python 3.6+構(gòu)建API最快的框架之一。該框架具有Flask的幾個(gè)特征悦析,包括其簡(jiǎn)單性寿桨。整個(gè)框架基于Starlette構(gòu)建,并包含其大部分功能(模板强戴,WebSocket和GraphQL支持)亭螟。FastAPI框架提供:
開發(fā)速度提高200%至300%
減少40%的錯(cuò)誤
調(diào)試時(shí)間更少
減少代碼重復(fù)
自動(dòng)交互式文檔
Sanic
GitHub stars:13511
Sanic是一個(gè)基于uvloop的Python Web框架,專門針對(duì)通過異步請(qǐng)求處理的快速HTTP響應(yīng)而創(chuàng)建酌泰。它可以在Python 3.5+上運(yùn)行媒佣。Sanic支持異步請(qǐng)求處理程序匕累,這使其與Python 3.5的async / await函數(shù)兼容陵刹。這提高了速度,提供了非阻塞功能。由于Sonic具有路由衰琐,中間件也糊,cookie,版本控制羡宙,靜態(tài)文件狸剃,藍(lán)圖,基于類的視圖和套接字狗热,因此被認(rèn)為是首選的異步框架钞馁。但是,它不提供數(shù)據(jù)庫(kù)支持和模板匿刮。
Tornado
GitHub stars:18293
Tornado是一個(gè)Python web框架和異步網(wǎng)絡(luò)庫(kù)僧凰,側(cè)重于速度和處理大量流量的能力。它使用非阻塞網(wǎng)絡(luò)I/O熟丸,解決了C10k問題(這意味著训措,如果正確配置,它可以處理10,000多個(gè)并發(fā)連接)光羞。這使得它成為構(gòu)建需要高性能和成千上萬并發(fā)用戶的應(yīng)用程序的好工具绩鸣。
內(nèi)置對(duì)用戶身份驗(yàn)證的支持
實(shí)時(shí)服務(wù)
高品質(zhì)的表現(xiàn)
基于Python的Web模板語言
實(shí)施第三方身份驗(yàn)證和授權(quán)方案(Google OpenID / OAuth,F(xiàn)acebook登錄纱兑,Yahoo BBAuth呀闻,F(xiàn)riendFeed OpenID / OAuth,Twitter OAuth)
Dash
GitHub stars:11000
Dash是一個(gè)用于構(gòu)建分析性web應(yīng)用程序的開源Python框架潜慎。對(duì)于不太熟悉web開發(fā)的Python數(shù)據(jù)科學(xué)家來說总珠,這尤其有用。Dash有兩個(gè)特點(diǎn):
僅使用Python代碼構(gòu)建高度交互的應(yīng)用程序勘纯。
使用Python工具來操作數(shù)據(jù)變得非常簡(jiǎn)單局服。
對(duì)編程感興趣,對(duì)Python感興趣驳遵,可以關(guān)注我噢·~私信可以免費(fèi)獲得Python編程學(xué)習(xí)資料~