Django 2024年生態(tài)報(bào)告

PyCharm 與 Django 基金會合作,對全球 4,000 多名 Django 開發(fā)者進(jìn)行了調(diào)查,并根據(jù)他們的回答分析了 Django 的最新趨勢。

Django 2024年最新趨勢

1/3 的 Django 開發(fā)者使用 Flask 或 FastAPI

你最常用的框架是哪個?

盡管與去年的 83% 相比略有下降,仍有 74% 的受訪者將 Django 作為首選框架。

除了 Django,你還使用哪些 Web 框架?

Flask 的熱度略有下降,2022 年為 29%,2023 年為 26%。

FastAPI 的熱度保持穩(wěn)定,25% 的受訪者表示自己正在使用 FastAPI。

將 Django 作為主要開發(fā)框架的開發(fā)者中,有 33% 的人也使用 Flask 或 FastAPI,這顯示出 Python 后端開發(fā)者多樣化的后端技能。

49% 的開發(fā)者反饋同時在開發(fā)多個項(xiàng)目,他們有可能因?yàn)椴煌捻?xiàng)目需求而選擇不同的框架。

  • Django – 采用“內(nèi)置電池”方法,適用于更大、更復(fù)雜的 Web 應(yīng)用程序。
  • Flask – 適用于相對簡單的應(yīng)用程序,尤其是靜態(tài)站點(diǎn)或微服務(wù)。
  • FastAPI – 創(chuàng)建 API 端點(diǎn),適用于包含大量 IO 調(diào)用的應(yīng)用程序,尤其是實(shí)時 Web 應(yīng)用程序。

這三個框架都用過的 Django 開發(fā)者只有 11%,說明大多數(shù)人使用 Flask 和 FastAPI 開發(fā)類似的 Web 項(xiàng)目,只是因?yàn)楫惒焦δ芏D(zhuǎn)向 FastAPI。

開發(fā)者主要使用 Django 開發(fā)全棧項(xiàng)目與 API

你用 Django 做什么?

今年的調(diào)查顯示,Django 在全棧開發(fā)(73%)和 API 開發(fā)(61%)方面都很受歡迎.

對于全職開發(fā)者,他們更傾向于使用 Django 開發(fā) REST API(65% vs. 平均 60%),但使用 Django 開發(fā)全棧項(xiàng)目的低于平均值(68% vs. 平均 74%)。

隨著 htmx 越來越受歡迎,這種趨勢也可能會發(fā)生變化,更多開發(fā)者有可能使用 Django 進(jìn)行全棧開發(fā)。

盡管 DRF 在第三方軟件庫中仍占據(jù)領(lǐng)先地位,但隨著以速度和類型而聞名的 Django Ninja 的不斷普及,其受熱度有所下降。

Django Ninja 提供高性能和異步功能,類似于 FastAPI,但在 Django 生態(tài)系統(tǒng)中,它的學(xué)習(xí)曲線更短。

61% 的 Django 開發(fā)者使用異步

你使用哪種異步技術(shù)?

Django 開發(fā)者明顯轉(zhuǎn)向使用異步技術(shù)。目前,有 61% 的開發(fā)者在項(xiàng)目中使用異步,去年這一比例為 53%。

FastAPI 是專為異步構(gòu)建的,有 21% 的 Django 開發(fā)者為了異步而使用 FastAPI。

盡管 FastAPI 是更受歡迎的異步框架,Django 的異步視圖也在逐漸被更多受訪者接受(14%)。

隨著 Django 5 對異步支持的提升,使用 Django 異步功能的開發(fā)者可能會進(jìn)一步增加。

Django 開發(fā)者對 htmx、Alpine.js 和 Tailwind CSS 的偏好轉(zhuǎn)變

除了 Python,你還使用哪種編程語言?

JavaScript 是最受歡迎的前端語言,有 68% 的開發(fā)者使用 JavaScript,但它正逐漸將領(lǐng)先地位讓給 TypeScript。

JavaScript 的比例從 2022 年的 75% 下降至 2023 年的 68%。

TypeScript 則從 2021 年的 19% 增長至 2023 年的 28%。

TypeScript 熱度的提升是因?yàn)槠潇o態(tài)類型功能,能幫助開發(fā)者在開發(fā)過程中提前發(fā)現(xiàn)錯誤,使代碼更加健壯,也更易于維護(hù)。

你使用哪種 JavaScript 框架?

Django 開發(fā)者仍然青睞 JavaScript 框架。

Vue 的使用率為 19%,jQuery 的使用率為 31%,React 的使用率為 35%,盡管它們的總體使用率逐年下降。

對于較新的框架,htmx 的使用率從 2022 年的 16% 增長到 2023 年的 23%,Alpine.js 從 6% 增長到 10%。

這一趨勢表明 UI 開發(fā)將轉(zhuǎn)向使用更簡單的工具。

Adam Johnson 開發(fā)了一個專用的 django-htmx 包。

你使用哪個 CSS 框架?

Bootstrap 的使用率在持續(xù)下降,Tailwind CSS 的使用率則在顯著增長。

Tailwind CSS 的熱度在過去兩年中翻了一番。與 Bootstrap 相比,Tailwind CSS 的熱度越來越高。

這表明開發(fā)者希望在 Web 項(xiàng)目中采用更可定制、更少規(guī)范的 CSS 實(shí)現(xiàn)工具。

75% 的 Django 開發(fā)者青睞 PostgreSQL

你使用哪個數(shù)據(jù)庫?

在 Django 生態(tài)系統(tǒng)中,PostgreSQL 是開發(fā)者的首選數(shù)據(jù)庫 (76%),凸顯了開發(fā)者對 SQL 的偏好。

開發(fā)者對 MongoDB (8%) 等 NoSQL 數(shù)據(jù)庫的興趣也很大,反映出數(shù)據(jù)庫市場格局的多樣化。

盡管缺少 Django 的官方支持,MongoDB 仍是數(shù)據(jù)庫的頂級候選者,充分反映了開發(fā)者集成更靈活的,面向文檔的 NoSQL 數(shù)據(jù)庫的意愿。

50% 的開發(fā)者依賴 Redis 進(jìn)行緩存

你使用哪個后端緩存數(shù)據(jù)庫?

在緩存方面,Redis 仍是提高 Web 應(yīng)用程序響應(yīng)能力的首選 (54%)。

但同時, Memcached 也受到越來越多的關(guān)注 (20%) 。

超過 50% 的 Django 開發(fā)者使用容器

你在生產(chǎn)環(huán)境中使用哪種容器服務(wù)?

Amazon ECS/Fargate (19%) 憑借其易用性和與 AWS 的集成而處于領(lǐng)先地位,成為 AWS 生態(tài)系統(tǒng)中開發(fā)者的首選。

Kubernetes (14%) 則吸引了希望能靈活控制基礎(chǔ)設(shè)施的開發(fā)者,以及在私有云和公有云之間具有輕松遷移和共享能力的開發(fā)者。

Amazon EKS (12%) 和 Docker Swarm (12%) 的流行可能是因?yàn)樗鼈冊诳晒芾硇院涂蓴U(kuò)展性之間提供了平衡,可滿足各種部署需求。

GitHub Actions 成為行業(yè)領(lǐng)頭羊

你使用哪種 CI 系統(tǒng)?

在 CI 領(lǐng)域的增長(2023 年為 45%,2021 年為 35%),讓 GitHub Actions 凸顯了它為使用 GitHub 管理源代碼的開發(fā)者帶來的便利。

GitHub Actions 利用簡單的 YAML 文件管理管道,可直接在 GitHub 生態(tài)系統(tǒng)內(nèi)自動化軟件工作流程。

此外,它還能靈活地自定義硬件配置,其強(qiáng)大的處理能力和內(nèi)存還支持運(yùn)行規(guī)模龐大的任務(wù)。

39% 的 Django 開發(fā)者使用 IaC

你使用哪種 IaC 工具?

39% 的受訪者使用基礎(chǔ)設(shè)施即代碼(Infrastructure as code,IaC),這表明通過代碼實(shí)現(xiàn)自動化和基礎(chǔ)設(shè)施管理的需求在日益增長。

對于大型項(xiàng)目,IaC 可以確保更可靠、可重復(fù)和可擴(kuò)展的基礎(chǔ)設(shè)施設(shè)置。

Terraform 是最常用的 IaC 引擎,20% 的受訪者表示他們更喜歡 Terraform 。

5% 的受訪者選擇了開源解決方案 Pulumi,這可能是因?yàn)?Pulumi 可以靈活地使用多種編程語言管理基礎(chǔ)設(shè)施。

這使得具有多種編程語言背景的開發(fā)者和 DevOps 工程師都可以使用 Pulumi。

Terraform于 2022 年開始通過 CDK 提供類似的方式。

Django 學(xué)習(xí)資源

你通過哪些平臺了解 Django 開發(fā)?
你通過哪些平臺學(xué)習(xí) Django?

全職開發(fā)者較少通過觀看 YouTube 上的視頻來學(xué)習(xí) Django(32% vs. 平均 39%),并且較少使用 AI 輔助開發(fā)工具(22% vs. 平均 26%)。

團(tuán)隊(duì)負(fù)責(zé)人 將 Django News、Hacker News、Reddit 及 X(前 Twitter)作為了解 Django 最新進(jìn)展的渠道,大多情況下向朋友請教 Django 的知識(19% vs. 平均 17%)。

初級開發(fā)者則經(jīng)常通過 YouTube 和 StackOverflow 學(xué)習(xí),也更傾向于通過這些平臺了解 Django 的消息。

初級開發(fā)者比資深開發(fā)者更頻繁地使用 AI 輔助開發(fā)工具(38% vs. 平均26%)。

多樣生態(tài)

  • 全職 Django 開發(fā)者更多是僅將 Django 用于工作(23% vs. 平均 17%)。

  • 如果把團(tuán)隊(duì)負(fù)責(zé)人和全職開發(fā)者并為一組的話,他們最喜歡的核心組件是遷移,不太喜歡的組件包括身份驗(yàn)證、模板及類視圖。

  • 團(tuán)隊(duì)負(fù)責(zé)人更傾向于使用 PyCharm(31% vs. 平均 29%)和 Vim(12% vs. 平均 7%),VS Code 則略少(31% vs. 平均 29%)。

受訪者信息

在過濾掉重復(fù)和不可靠的答案后,本次調(diào)查的數(shù)據(jù)集包含了 2023 年 9 ~ 10 月期間收集的約 4,000 份回答。

區(qū)域分布

你在哪個區(qū)域?

44% 的受訪者在歐洲,19% 在北美,17% 在亞洲。

年齡分布

你在哪個年齡段?

大多數(shù)受訪者(86%)的年齡在 21 至 49 歲之間。

38% 的受訪者年齡在 31 至 39 歲之間。

30% 的受訪者年齡在 21 至 29 歲之間。

開發(fā)經(jīng)驗(yàn)

你有多少年的開發(fā)經(jīng)驗(yàn)

32% 的受訪者擁有 11 年以上的專業(yè)開發(fā)經(jīng)驗(yàn)。

24% 的受訪者擁有 3-5 年的專業(yè)開發(fā)經(jīng)驗(yàn)。

19% 的受訪者擁有 6-10 年的專業(yè)開發(fā)者經(jīng)驗(yàn)。

從事專業(yè)開發(fā)工作不到兩年的受訪者占 25%。

崗位職責(zé)

你的崗位職責(zé)是什么?

79% 的受訪者的崗位職責(zé)包括開發(fā)/編程或軟件工程。

16% 的受訪者是團(tuán)隊(duì)負(fù)責(zé)人。

10% 的受訪者的工作包括數(shù)據(jù)分析、數(shù)據(jù)工程或數(shù)據(jù)科學(xué)。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容