推薦值得學(xué)習(xí)的12款python-web開(kāi)發(fā)框架
最近JETBRAINS發(fā)布了目前最受歡迎的python-web開(kāi)發(fā)框架,可以看到最受歡迎的還是Django和Flask,那么本文就對(duì)上榜的12個(gè)框架進(jìn)行分類(lèi)整理,一起來(lái)看看吧!
全??蚣?/strong>
- Django
- Pyramid
- TurboGears
- Web2py
微型框架
- Flask
- Bottle
- CherryPy
- Falcon
- Hug
- FastAPI
異步框架
- Sanic
- Tornado
其他
- Dash
Django
GitHub stars:47078
Django是高水準(zhǔn)的Python編程語(yǔ)言驅(qū)動(dòng)的一個(gè)開(kāi)源模型.視圖,控制器風(fēng)格的Web應(yīng)用程序框架,它起源于開(kāi)源社區(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的開(kāi)放源代碼,也是第二個(gè)值得注意的Web應(yīng)用程序框架。其目標(biāo)是以最小的復(fù)雜度來(lái)盡可能多地完成更多任務(wù)。Pyramid 1.10是框架的當(dāng)前版本,并且是自2010年以來(lái)的第十次更新。那么Pyramid有以下特點(diǎn):
- 單個(gè)文件的應(yīng)用程序
- 通用的URL
- 可擴(kuò)展的配置
- 各種各樣的模板
- 靈活的身份驗(yàn)證和授權(quán)
- 測(cè)試、支持和全面的數(shù)據(jù)文檔
TurboGears
GitHub stars:654
TurboGears是一個(gè)開(kāi)源的,數(shù)據(jù)驅(qū)動(dòng)的全棧Web應(yīng)用程序框架。它建立在許多中間件和許多庫(kù)的基礎(chǔ)上,因此可以快速開(kāi)發(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ò)展的開(kāi)源全棧Python框架。在處理數(shù)據(jù)時(shí),它非常強(qiáng)大。Web2py最初是作為教學(xué)工具提供的,重點(diǎn)是易用性。Web2py的優(yōu)點(diǎn)是它帶有自己的基于Web的IDE,其中包括代碼編輯器,調(diào)試器和一鍵式部署。Web2py的其他重要功能包括:
- 無(wú)需安裝和配置
- 能夠在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)腳本編寫(xiě),注入漏洞和惡意文件執(zhí)行等漏洞
- 成功采用軟件工程實(shí)踐,使代碼易于閱讀和維護(hù)
Flask
GitHub stars:49380
Flask是一個(gè)輕量級(jí)的可定制框架,較其他同類(lèi)型框架更為靈活、輕便、安全且容易上手。它可以很好地結(jié)合MVC模式進(jìn)行開(kāi)發(fā),開(kāi)發(fā)人員分工合作,小型團(tuán)隊(duì)在短時(shí)間內(nèi)就可以完成功能豐富的中小型網(wǎng)站或Web服務(wù)的實(shí)現(xiàn)。其強(qiáng)大的插件庫(kù)可以讓用戶(hù)實(shí)現(xiàn)個(gè)性化的網(wǎng)站定制,開(kāi)發(fā)出功能強(qiáng)大的網(wǎng)站。它包括許多有用的現(xiàn)成功能:
- 內(nèi)置開(kā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ù)外,它沒(méi)有依賴(lài)項(xiàng)。使用Bottle進(jìn)行編碼比使用任何全??蚣苓M(jìn)行編碼更穩(wěn)定。但是,只有編寫(xiě)一個(gè)很小的應(yīng)用程序(最多500行代碼且無(wú)特殊要求)時(shí),Bottle才是較好的選擇。它的默認(rèn)功能包括路由,模板,實(shí)用程序以及基于WSGI標(biāo)準(zhǔn)的基本抽象。
- 路由 :支持對(duì)函數(shù)調(diào)用映射的請(qǐng)求
- 模板 :一個(gè)現(xiàn)成的快速Pythonic 模板引擎,并全面支持mako和inja2
- 實(shí)用程序 :輕松訪(fǎng)問(wèn)表單數(shù)據(jù),文件上傳,Cookie
- 服務(wù)器 :一個(gè)內(nèi)置的HTTP服務(wù)器的發(fā)展,支持fapws3
CherryPy
GitHub stars:1057
CherryPy是一個(gè)開(kāi)放源代碼的簡(jiǎn)約Web框架。它使構(gòu)建Python Web應(yīng)用程序與構(gòu)建任何其他面向?qū)ο蟮某绦驔](méi)有什么不同。但基于CherryPy的Web應(yīng)用程序是一個(gè)獨(dú)立的Python應(yīng)用程序,它嵌入了自己的多線(xiàn)程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ì)話(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)是獵鷹,象征著獵鷹的工作速度。該框架允許開(kāi)發(fā)人員制定更簡(jiǎn)潔的設(shè)計(jì)并處理大多數(shù)請(qǐng)求。Falcon未限制開(kāi)發(fā)人員選擇數(shù)據(jù)庫(kù)和授權(quán)庫(kù)。Falcon其他的功能有:
- 全面的測(cè)試套件可實(shí)現(xiàn)100%的代碼覆蓋率
- 高度優(yōu)化的代碼庫(kù)
- 前期異常處理
- 通過(guò)中間件組件處理DRY請(qǐng)求
- 通用的HTTP錯(cuò)誤響應(yīng)
- 通過(guò)WSGI幫助器進(jìn)行單元測(cè)試
Hug
GitHub stars:5955
Hug是一個(gè)Python 3 API開(kāi)發(fā)框架。它的設(shè)計(jì)使軟件工程師可以一次開(kāi)發(fā)API,然后在需要時(shí)再使用它。Hug框架通過(guò)提供各種接口來(lái)簡(jiǎn)化API開(kāi)發(fā)。這就是為什么該框架被稱(chēng)為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ì)為易于使用,以確保最佳的開(kāi)發(fā)體驗(yàn)。迄今為止,F(xiàn)astAPI是使用Python 3.6+構(gòu)建API最快的框架之一。該框架具有Flask的幾個(gè)特征,包括其簡(jiǎn)單性。整個(gè)框架基于Starlette構(gòu)建,并包含其大部分功能(模板,WebSocket和GraphQL支持)。FastAPI框架提供:
- 開(kāi)發(fā)速度提高200%至300%
- 減少40%的錯(cuò)誤
- 調(diào)試時(shí)間更少
- 減少代碼重復(fù)
- 自動(dòng)交互式文檔
Sanic
GitHub stars:13511
Sanic是一個(gè)基于uvloop的Python Web框架,專(zhuān)門(mén)針對(duì)通過(guò)異步請(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)圖,基于類(lèi)的視圖和套接字,因此被認(rèn)為是首選的異步框架。但是,它不提供數(shù)據(jù)庫(kù)支持和模板。
Tornado
GitHub stars:18293
Tornado是一個(gè)Python web框架和異步網(wǎng)絡(luò)庫(kù),側(cè)重于速度和處理大量流量的能力。它使用非阻塞網(wǎng)絡(luò)I/O,解決了C10k問(wèn)題(這意味著,如果正確配置,它可以處理10,000多個(gè)并發(fā)連接)。這使得它成為構(gòu)建需要高性能和成千上萬(wàn)并發(fā)用戶(hù)的應(yīng)用程序的好工具。
- 內(nèi)置對(duì)用戶(hù)身份驗(yàn)證的支持
- 實(shí)時(shí)服務(wù)
- 高品質(zhì)的表現(xiàn)
- 基于Python的Web模板語(yǔ)言
- 實(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)用程序的開(kāi)源Python框架。對(duì)于不太熟悉web開(kāi)發(fā)的Python數(shù)據(jù)科學(xué)家來(lái)說(shuō),這尤其有用。Dash有兩個(gè)特點(diǎn):
- 僅使用Python代碼構(gòu)建高度交互的應(yīng)用程序。
- 使用Python工具來(lái)操作數(shù)據(jù)變得非常簡(jiǎn)單。
以上就是推薦值得學(xué)習(xí)的12款python-web開(kāi)發(fā)框架的詳細(xì)內(nèi)容,更多關(guān)于Python web開(kāi)發(fā)框架的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
- python 19個(gè)值得學(xué)習(xí)的編程技巧
- python學(xué)習(xí)筆記之多進(jìn)程
- Python學(xué)習(xí)筆記之裝飾器
- 帶你學(xué)習(xí)Python如何實(shí)現(xiàn)回歸樹(shù)模型
- C、C++、Java到Python,編程入門(mén)學(xué)習(xí)什么語(yǔ)言比較好
- 如何教少兒學(xué)習(xí)Python編程
- python交互模式基礎(chǔ)知識(shí)點(diǎn)學(xué)習(xí)
- Python學(xué)習(xí)之路之pycharm的第一個(gè)項(xiàng)目搭建過(guò)程
- Python學(xué)習(xí)之路安裝pycharm的教程詳解
- python新手學(xué)習(xí)使用庫(kù)
- python學(xué)習(xí)將數(shù)據(jù)寫(xiě)入文件并保存方法
- 學(xué)習(xí)Python需要哪些工具
相關(guān)文章
Python 十六進(jìn)制整數(shù)與ASCii編碼字符串相互轉(zhuǎn)換方法
今天小編就為大家分享一篇Python 十六進(jìn)制整數(shù)與ASCii編碼字符串相互轉(zhuǎn)換方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-07-07Python量化因子測(cè)算與繪圖超詳細(xì)流程代碼
這篇文章主要介紹了Python量化因子測(cè)算與繪圖,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)吧2023-02-02Python函數(shù)遞歸調(diào)用實(shí)現(xiàn)原理實(shí)例解析
這篇文章主要介紹了Python函數(shù)遞歸調(diào)用實(shí)現(xiàn)原理過(guò)程解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-08-08Python?selenium下拉選擇框?qū)崙?zhàn)應(yīng)用例子
Selenium是一個(gè)開(kāi)源的和便攜式的自動(dòng)化軟件測(cè)試工具,用于測(cè)試Web應(yīng)用程序有能力在不同的瀏覽器和操作系統(tǒng)運(yùn)行,下面這篇文章主要給大家介紹了關(guān)于Python?selenium下拉選擇框?qū)崙?zhàn)應(yīng)用的相關(guān)資料,需要的朋友可以參考下2022-07-07Python爬蟲(chóng)的兩套解析方法和四種爬蟲(chóng)實(shí)現(xiàn)過(guò)程
本文想針對(duì)某一網(wǎng)頁(yè)對(duì) python 基礎(chǔ)爬蟲(chóng)的兩大解析庫(kù)( BeautifulSoup 和 lxml )和幾種信息提取實(shí)現(xiàn)方法進(jìn)行分析,及同一網(wǎng)頁(yè)爬蟲(chóng)的四種實(shí)現(xiàn)方式,需要的朋友參考下吧2018-07-07Python實(shí)現(xiàn)學(xué)生成績(jī)管理系統(tǒng)
這篇文章主要為大家詳細(xì)介紹了Python實(shí)現(xiàn)學(xué)生成績(jī)管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-01-01