優(yōu)質(zhì)文章,第一時間送達! 最近有人抓取了 Github、Stack Overflow、PyPI 上的數(shù)據(jù),根據(jù)開發(fā)者在這些平臺上的實際使用行為,對目前的 Python Web 框架進行了排名。這個排名不是基于性能來排序的,但整體我認為其實更綜合一些,是大家“用腳投票”選出來的。 在今天的文章里,我想和大家分享這份榜單,以及從中獲得的一些啟示。 一、具體名單排名前十五的框架名單如下: 詳細數(shù)據(jù)可查看:https://e8q41pfxni./sheets/shtcnJFBSG220Q8VfSnX6BUyjae?from=from_copylink 二、排名算法框架得分計算方式比較簡單: 1、首先逐一計算每個指標的得分,具體方法如下: 1)抓取框架對應(yīng)指標的數(shù)據(jù); 2)將該指標的數(shù)據(jù)從低到高排序 3)指標得分就是框架的序號 2、將每個指標的得分相加,并除以指標的數(shù)量,簡單說就是求平均值 3、最后將得分轉(zhuǎn)換成百分制,就得到了最終分數(shù) 二、榜單啟示我沒有太細究數(shù)據(jù)背后的一些原因,這里僅僅跟大家分享3點觀察和啟示。 1、Django 仍占主流,但在被 Flask 和 aiohttp 追趕 從最新抓取的數(shù)據(jù)可以看到,在開發(fā)者使用率(PyPI項目主要依賴數(shù),即該框架被多少項目引入作為主要依賴)、社區(qū)活躍度(SO問題數(shù)、Github星標數(shù)、Github貢獻者數(shù))方面,仍然排在首位。 這里當(dāng)然有 Django 功能強大、完備這方面的因素,但是我認為,發(fā)展早這個也是它能有如此積累的一個重要原因。 Flask 作為后起之秀,在PyPI項目主要依賴數(shù)和Github星標數(shù)這兩個指標上,已經(jīng)基本上和 Django 不相上下了。尤其是后者,是最近幾年迅速增長起來的。 而且 Flask 和 aiohttp 的下載量遠遠超過了 Django。 2、異步框架逐步受到大家的歡迎 aiohttp、sanic 等都是原生支持異步調(diào)用的,aiohttp 在各項指標上的表現(xiàn)都不錯,排在前列,尤其是 PyPI 上的下載量超過了2500萬;sanic 目前看上去在開發(fā)者中的接受度較一般,在 SO 上的問題數(shù)偏少,不到 200 條。 另外,Django 老大哥在 3.0 版本中也加入了 ASGI 的支持。 3、Web 框架中垂直類開始崛起 這里的垂直類框架,我指的是 FastAPI 和 Dash。 FastAPI 是專門用于開發(fā) Rest 服務(wù)的框架,國內(nèi)有很多 Python 自媒體都發(fā)文推薦過,性能表現(xiàn)非常優(yōu)秀,可以媲美 NodeJS 和 Go。 Dash 是 Plotly 出品專門用于開發(fā)數(shù)據(jù)可視化應(yīng)用的框架,基于 Flask、Plotly.js 和 React.js 打造,但是在編碼的時候,可以只使用 Python 來實現(xiàn)。 這兩個框架的排名都比較靠前,數(shù)據(jù)表現(xiàn)很好。 尤其要說明的是 Dash 的勢頭很強,最近一個月僅靠 4 名貢獻者就更新了超過 10 萬行代碼,背后一個重要的原因是它背后有商業(yè)化力量在推動。Dash 是 Plotly 公司基于 Plotly.js 打造的,雖然開源,但是還提供了針對企業(yè)的私有部署服務(wù)。所以它有很強的動力來推廣 Dash。 整體來說,我覺得 Python Web 框架生態(tài)是越來越繁榮了,對于廣大的開發(fā)者來說是特別棒的一件事情。 上面也只是我一些不成熟的看法,歡迎大家留言一起分享自己的觀點。如果你有用的不錯的Web 框架,也歡迎在留言里向大家推薦。 |
|