都2022年了,Python Web框架你不會只知道Django和Flask吧?

語言: CN / TW / HK

攜手創作,共同成長!這是我參與「掘金日新計劃 · 8 月更文挑戰」的第4天,點選檢視活動詳情

寫在前面

本文的誕生非常偶然,這兩天一個小小小學弟問橡皮擦一個陳年舊問題,Python 基礎學完了,想學習一個 Python Web 框架,是先學習 Django 呢,還是學習 Flask,現在的公司都用啥?

每次這個問題出現的時候,我都會給拉一個清單,這次咱們直接把它轉換成文章吧。

標題就叫做《2022 年,你該學習的 Python Web 框架》

以下涉及的所有框架,都不提供官網和任何學習資料,作為一個合格的程式設計師,這些要自己能找到。

第一款:Flask

先學這個吧,輕便,靈活,定製性強,重點是上手就能用,而且又流行,

橡皮擦認識很多 Python Web 工程師就拿這個接小活做,==做的又快,來錢也快==。

Logo 是個辣椒的圖示,比較火熱~

第二款:Django

Python Web 框架中的大哥,大而全,自帶了一堆功能,學會了之後,做後臺管理系統,安裝之後,配置幾下就可用。

有一定的學習門檻,框架模式遵循 MTV 模式,即模型,檢視,模板。

如果你初學階段就上手的 django,掌握之後,回過頭來看 Flask,==呃,小專案你會毫不猶豫的選擇 Flask==。

第三款:tornado

是 Python Web 框架的同時,也是一款非同步網路庫,使用的是非阻塞 IO,所以處理速度特別快。 效能優秀,高併發優秀,但是因為其涉及非同步 IP 相關知識,所以對初學者不友好,即學起來難度有那麼一丟丟的高

如果你 Python 基礎還不錯,那 tornado 對你來說也是一個輕量級的 Web 框架,而且支援非同步程式設計和 Web Socket,必須學這個呀。

第四款:Bottle

一個遵循 WSGI 的微型 Web 框架,整個架子就一個幾十 K 的檔案,裡面包含路由,模板,簡單的資料訪問,6 的飛起。

不過也正是因為它“太簡陋"了,學學就會了,所以大家總是在忽略它。

第五款:Sanic

不新不舊,不火不熱的框架,基於 Python3.6+實現,支援 async/await 語法,所以也是一個高效框架。

目前的問題就是資料少,生態沒有那麼好(Sanic 外掛文件都幾乎沒有),不過學習階段肯定夠了,語法非常類似 Flask,所以二者我選 Flask。

但是注意一點 Sanic 是非同步框架,效能優於 Flask。

第六款:FastApi

沒錯,現在大家炒的最火熱的”現代“ Python Web 框架,號稱效能第一,編碼速度第一,文件最簡單,還能幫程式設計師減少錯誤。

還有一點是新,2019 年的框架,當下又這麼火,所以必須學習一下。

其餘 Python Web 框架

除了上文提及的框架外,還有一些小眾,或為特殊場景準備的輪子框架。

如果你學有餘力,都可以涉獵一下。

falcon

一個高效能構建大規模應用以及微服務的 Python Web 框架。

pyramid

以高效率和快節奏的開發能力而出名的 Python Web 框架。

asgineer

支援非同步的 Web 框架。

emmett

宣傳的是更加專注產品,簡化開發過程,簡化語法的一個框架。

apidaora

看名字就能猜測一下,它是一款專注於 Python Api 的框架。

hug

hug 的定義是一個 RESTFUL API 的框架,做介面平臺用的框架

blacksheep

BlackSheep 是一個非同步 Web 框架,語法與 Flask 類似。

index.py

著重優化了路由查詢功能,因為號稱是最快的 Python Web 框架之一,不過同行都這麼稱呼自己。 但是它的名字實在不討好,畢竟橡皮擦總是建立一個叫 index.py 的檔案。

starlette

一個輕量級的 ASGI 框架,在後面橡皮擦為大家補充一篇介紹 ASGI 知識點的文章。

responder

底層是 starlette,是 kennethreitz 寫的,質量很有保證,這個大佬是誰?requests 模組的作者。

clastic

自己搜搜吧,這個不太瞭解,資料也不多。

molten

同樣是一款小巧迷你的開發 API 的框架

aiohttp

寫爬蟲常用,基於 asyncio 和 非同步 Web 框架。

cherrypy

與其它框架不同,cherrypy 有自己的想法,它希望開發者按照面向物件的思路開發 Web 系統,所以可以重點關注一下這個框架。

masonite

以 Django 為競爭對手的框架,你現在應該知道它是啥了吧。

cyclone

Cyclone 將 Tornado API 實現為 Twisted 協議。

django-ninja

好傢伙,這個是 Django 和 FastApi 的結合體,官方說的是 Fast Django REST Framework,而且口號是:fast to learn,fast to code,fast to run,厲害,厲害。

web.py

Guido van Rossum 認為這是最好的 Python Web 框架,可惜作者已經不在了。

總結

Python Web 框架非常多,很多並未出現在上文,一個 Python Web 工程師僅需要學習前 6 款即可,剩下的可以工作中進行學習。 本文你可以收藏,然後萬一哪天用到了呢~

「其他文章」