知識
不管是網(wǎng)站,軟件還是小程序,都要直接或間接能為您產(chǎn)生價值,我們在追求其視覺表現(xiàn)的同時,更側(cè)重于功能的便捷,營銷的便利,運營的高效,讓網(wǎng)站成為營銷工具,讓軟件能切實提升企業(yè)內(nèi)部管理水平和效率。優(yōu)秀的程序為后期升級提供便捷的支持!
您當(dāng)前位置>首頁 » 新聞資訊 » 網(wǎng)站建設(shè) >
2020年值得去了解的12個Python Web框架
發(fā)表時間:2020-1-15
發(fā)布人:葵宇科技
瀏覽次數(shù):90
在Web開發(fā)領(lǐng)域,Python其實并沒有像在機器學(xué)習(xí)和數(shù)據(jù)處理這個領(lǐng)域一樣占有統(tǒng)治地位。不過鑒于Python在最近幾年的強勢地位,了解一下Python的web框架也挺有必要的。萬一哪天我自己或者是客戶“腦抽”了,真的要用Python來寫web應(yīng)用了呢?框架(Framework)讓程序員的生活更容易,常用的功能和方法都打包進了框架里,直接從庫里拿出來修改一下就用,確實是個省時省力,干活多快好省的好東西。
1. Why Python?
就不廢話了,用一張圖片和一張圖表來解釋吧。
- 人生苦短,Python是岸
- 日月蛇(Python)教,一統(tǒng)江湖之勢

2. Python Web框架總結(jié)
總體來說Django和Flask是最最流行的Python Web框架,但是這不是說我們就可以忽略其他的框架。其實每一個框架都有其獨特的設(shè)計和優(yōu)勢,在某些需求下,可能會更適合你的項目。

我們可以把這些框架分成兩種類型: 1.全功能框架(或重型框架),這種類型的框架包括創(chuàng)建web應(yīng)用所需要的大部分功能,通常可以用于構(gòu)架需要完整功能和復(fù)雜設(shè)計的大型網(wǎng)站應(yīng)用。2.輕量級框架,顧名思義,就是提供比較簡單的網(wǎng)站構(gòu)建功能,通常用于簡單的,或者是小型的網(wǎng)站應(yīng)用。
全功能框架
Django
官網(wǎng) | GitHub | PyPI | Awesome
Django應(yīng)該是最流行的Python Web框架了,沒有之一。而且其包含了創(chuàng)建應(yīng)用需要的幾乎全部功能,給人的感覺是這個框架希望框架本身實現(xiàn)各種功能,而不是依靠其他的庫來完成。比如Django集成了安全認(rèn)證,URL Routing,模板引擎,ORM以及數(shù)據(jù)庫Scheme映射。這使得Django非常強大,有很好的可擴展性,性能也非常好。Django支持 PostgreSQL, MySQL, SQLite, Oracle和其他第三方數(shù)據(jù)庫。其ORM功能支持多數(shù)據(jù)庫之間的轉(zhuǎn)換。
總之Django的設(shè)計優(yōu)秀,結(jié)構(gòu)合理,性能出眾。適合不同規(guī)模的網(wǎng)站,在2020年,Django會加入對機器學(xué)習(xí)的支持,同時攜Python迅猛發(fā)展勢頭,很有可能會成為今年使用者增長最快的Web框架。
Pyramid
官網(wǎng) | GitHub | PyPI | Awesome
Pyramid是一個在2010年就誕生的框架,其目標(biāo)是簡化web開發(fā)的復(fù)雜性。最新的版本是1.10,這已經(jīng)是其第10個正式版本了。這個框架可以用于復(fù)雜的應(yīng)用開發(fā),也適用輕量級應(yīng)用。Pyraid的開發(fā)社區(qū)還是比較活躍的。版本更新頻繁,各技術(shù)群的討論也是非常熱烈的。
TurboGears
官網(wǎng) | GitHub | PyPI
TurboGear是一個開源和數(shù)據(jù)驅(qū)動的程序框架,它是建構(gòu)在很多不同的中間件和庫的基礎(chǔ)上,實際上這個框架試圖把其他的Python框架中最好的組件融入其中。TurboGear允許開發(fā)者能夠快速搭建數(shù)據(jù)驅(qū)動的網(wǎng)站應(yīng)用。它有非常好用的模板引擎,對聚合的支持,功能強大而靈活的ORM工具,而且自帶了大量的小代碼片段,可以讓開發(fā)更容易。
現(xiàn)在TurboGear的社區(qū)正在致力于開發(fā)一個簡化(瘦身)版的TurboGear框架,這將會給大家?guī)硪粋€更加簡單易用的框架。
Web2py
官網(wǎng) | GitHub | PyPI
這個原先是作為一個教學(xué)用的項目被開發(fā)出來,自帶IDE工具,為了簡化使用,其沒有項目級的配置文件。Web2Py有一個內(nèi)置的ticket系統(tǒng),只要出現(xiàn)錯誤就會生出ticket,用來追蹤運行時的問題。
這個項目的社區(qū)和郵件列表并不活躍
輕量級框架
Flask
官網(wǎng) | GitHub | PyPI | Awesome
目前為止,Flask是最流行的Python輕量級Web框架。這個框架是受到Sinatra Ruby的啟發(fā)而開發(fā)出來的。 Flask基于Werkzeug WSGI toolkit以及 Jinja2 模板。
Flask的目的是要建立一個非常穩(wěn)定和可靠的Web應(yīng)用的基礎(chǔ)系統(tǒng),我們可以使用Flack再加上各種插件,擴展和其他模塊,能夠構(gòu)建功能強大的網(wǎng)站和應(yīng)用。事實上,如果Django不適合的應(yīng)用類型,使用Flask基本上是Python Web開發(fā)的默認(rèn)選擇。
Flask也是一個在2010年啟動的開源項目,到目前為止已經(jīng)更新了27個版本,由于歷史比較長,有些早期的擴展已經(jīng)不被支持,文檔也不再更新。需要在網(wǎng)絡(luò)上找到最新的文檔和功能。
Bottle
官網(wǎng) | GitHub | PyPI
Bottle是一個輕量級的框架,最初是設(shè)計為一個API框架,整個Bottle框架是在一個源文件上。沒有引用任何Python標(biāo)準(zhǔn)庫。建議是如果使用Bottle,最好是非常小的程序,最好小于500行代碼并且沒有特殊的需求。
CherryPy, Falcon, Hug, FastAPI - 極為小眾,就不介紹了。讀者有興趣可以自己查看
異步框架
以下兩個開源框架用于處理高并發(fā)的應(yīng)用,可以用于需要解決C10K問題(10000+并發(fā)的場景)
Sanic
官網(wǎng) | GitHub | PyPI
Sanic是基于uvloop開發(fā)的,用于創(chuàng)建高并發(fā)異步Http請求的應(yīng)用,必須使用Python3.5+,兼容Python3.5+的async/await方法,提供非阻塞的異步訪問功能。Sanic是一個非常流行的異步框架。提供了routing, middleware, cookies, versioning, static files, blueprints, class-based views, 以及sockets的功能。不過比較可惜的是并沒有提供模板引擎,也沒有內(nèi)置的數(shù)據(jù)庫支持功能。
在一個Benchmark測試中,Sanic單進程和100連接的情況下,最高每秒同時并發(fā)處理33542個請求,平均時延2.96ms。
Tornado
官網(wǎng) | GitHub | PyPI
Tornado是一個Python web框架加上異步網(wǎng)絡(luò)處理庫,用于大流量的網(wǎng)絡(luò)應(yīng)用開發(fā)。使用非阻塞I/O,目標(biāo)能夠處理C10K網(wǎng)站。如果配置合理,Tornado框架的網(wǎng)站應(yīng)用能夠輕松應(yīng)對10000+并發(fā)的流量。
Tornado的流行程度介于Django和Flask之間,如果你需要一個web應(yīng)用,同時也要支持高并發(fā),那Tornado是最好的選擇
相關(guān)案例查看更多
相關(guān)閱讀
- web教程
- 區(qū)塊鏈
- 云南省建設(shè)廳網(wǎng)站
- 模版信息
- 汽車報廢
- 網(wǎng)站建設(shè)快速優(yōu)化
- 曲靖小程序開發(fā)
- 網(wǎng)站建設(shè)高手
- 云南網(wǎng)站建設(shè)方案 doc
- 關(guān)鍵詞快速排名
- 網(wǎng)站建設(shè)首頁
- flex
- 百度推廣
- 云南軟件開發(fā)
- 小程序被騙退款成功
- 大理網(wǎng)站建設(shè)公司
- 海南小程序制作公司
- 云南企業(yè)網(wǎng)站
- 小程序生成海報
- 小程序分銷商城
- 小程序開發(fā)排名前十名
- php網(wǎng)站
- web前端
- 小程序密鑰
- 搜索引擎優(yōu)化
- 百度自然排名
- vue開發(fā)小程序
- 汽車報廢管理
- 公眾號模板消息
- 云南小程序開發(fā)哪家好