2024 Django 现状
您想了解 Django 开发的最新趋势吗?
PyCharm 与 Django Foundation 合作,调查采访了全球 4,000 多名 Django 开发者,并根据回复分析了框架的使用趋势。
在这篇博文中,我们将与您分享以下主要发现:
- 每三名 Django 开发者中有一名也使用 Flask 或 FastAPI。
- 大多数开发者使用 Django 进行全栈和 API 开发。
- 61% 的 Django 开发者使用异步技术。
- 还有更多洞察!
详细了解这些发现,探索 Django 开发中的其他趋势,并从图解信息图中受益。
![](https://blog.jetbrains.com/wp-content/uploads/2024/07/pc-social-featured_blog_1280x720_en.png)
后端:每三名 Django 开发者中有一名也使用 Flask 或 FastAPI。
![除了 Django,您还使用什么 Web 框架?](https://blog.jetbrains.com/wp-content/uploads/2024/06/1-2x.png)
![您最常用的 Web 框架是什么?](https://blog.jetbrains.com/wp-content/uploads/2024/06/2-2x.png)
Django 仍然是 74% 开发者的首选框架,尽管这一数字与去年的 83% 相比略有下降。 FastAPI 人气不减,有 25% 的受访者表示正在使用。 与此同时,Flask 的使用率略有下降(2022 年为 29%,2023 年为 26%)。
33% 主要使用 Django 的 Web 开发者也使用 Flask 或 FastAPI,表现出多样化的后端技能。
鉴于大多数全职开发者 (49%) 表示同时在多个项目上工作,这可能说明他们出于不同目的选择不同的工具:
- Django – 得益于其“内置电池”方式,适用于更大、更复杂的 Web 应用。
- Flask – 适用于更简单的应用程序(尤其是静态站点)或微服务。
- FastAPI – 创建 API 端点,特别是应用程序包含大量 IO 调用时(尤其是对于实时 Web 应用程序)。
只有 11% 的 Django 开发者使用所有三个框架,这可能表明其中大多数人出于类似目的使用 Flask 和 FastAPI,并由于异步能力而转向 FastAPI。
想了解 Django 与 Flask 和 FastAPI 有什么不同? 查看我们对 Django 与 Flask、Django 与 FastAPI 的详细比较,了解哪个框架最适合您的需求。
开发 API:大多数开发者使用 Django 进行全栈和 API 开发
![您将 Django 用于什么用途(全栈还是 REST API)?](https://blog.jetbrains.com/wp-content/uploads/2024/06/3-2x.png)
今年的调查显示,Django 在全栈 (74%) 和 API 开发 (60%) 中都很受欢迎,全职开发者更倾向于从事 API 工作。 全职开发者更有可能使用 Django 进行 REST API 开发(平均 65% 对比 60%),但不太可能将其用于全栈开发(平均 68% 对比 74%)。
随着 htmx 越来越受欢迎,趋势可能会转向使用 Django 的全栈开发。
有趣的是,虽然 DRF 在第三方软件包中保持领先,但其受欢迎程度有所下降,而速度和输入能力优越的 Django Ninja 则越来越受欢迎。 Django Ninja 提供了高性能和异步能力,类似于另一个非常流行的 API 创建选择 FastAPI,但它在 Django 生态系统中使学习曲线缩短。
使用 API? 阅读本教程了解如何使用 Django REST 框架构建 API。
异步:61% 的 Django 开发者使用异步
![您使用哪种(哪些)异步技术?](https://blog.jetbrains.com/wp-content/uploads/2024/06/4-2x.png)
Django 开发者明显转向使用异步技术,目前有 61% 在项目中加入异步技术(去年这一比例为 53%)。
FastAPI 在构建时充分考虑了异步编程,目前 21% 使用异步技术的 Django 开发者在使用 FastAPI。 使用 Django 异步视图的受访者也在增加 (14%),但 FastAPI 在异步任务中仍然更受欢迎。 即将发布的 Django 5 预计会提供更多异步支持,因此在 Django 中使用异步的兴趣可能会进一步提升。
前端:Django 开发者对 htmx、Alpine.js 和 Tailwind CSS 的偏好转变
![除 Python 外,您还使用哪种(哪些)其他编程语言?](https://blog.jetbrains.com/wp-content/uploads/2024/06/5-2x.png)
在前端方面,JavaScript 仍然是最受欢迎的语言,68% 的开发者表示正在使用。 不过,其领先优势有所动摇(2021 年和 2022 年为 75%),而 TypeScript 已从 2021 年的 19% 大幅提高到 2023 年的 28%。 这种受欢迎程度提升可能得益于 TypeScript 的静态类型特性,这有助于在开发过程早期发现错误,使代码更加稳健和易于维护。
![您使用哪种(哪些)JavaScript 框架?](https://blog.jetbrains.com/wp-content/uploads/2024/06/6-2x.png)
专业 Django 开发者仍然明显偏爱 JavaScript 框架,尽管其总体使用率逐年下降,竞品 Vue 的使用率为 26%,jQuery 为 35%,React 为 42%。
htmx(从 2022 年的 16% 提升到 2023 年的 23%)和 Alpine.js(从 6% 提升到 10%)这样的新框架正在迅速获得关注,表明向现代用户界面和更简单工具的转变。 Adam Johnson 开发了专属 django-htmx 软件包。
Dennis Ivy 对 htmx 的看法:
“很高兴在这里看到 HTMX。 我不是它的铁粉(React 是我的首选),但我认为它适合许多需要一点灵活性而又不必转向成熟 JS 框架/库的 Django 项目。”
![您使用哪种(哪些)CSS 框架?](https://blog.jetbrains.com/wp-content/uploads/2024/06/7-2x.png)
Bootstrap 继续呈下降趋势,而 Tailwind CSS 则显著提升,受欢迎程度在过去两年翻了一番。 与 Bootstrap 相比,Tailwind CSS 的受欢迎程度日益增长,表明人们渴望在 Web 项目中采用可定制程度更高、规定更少的样式设置方式。 阅读软件包创建者 Tim Kamanin 的文章,了解如何在 Django 中使用 Tailwind CSS。
Dennis Ivy 对 Tailwind CSS 的看法:
“很高兴看到 Tailwind-Django 的使用率有所增加。 希望这个领域有更多原生集成和教育内容。”
数据库:75% 的 Django 开发者偏好 PostgreSQL,50% 依赖于 Redis 进行缓存
![您使用什么后端数据库?](https://blog.jetbrains.com/wp-content/uploads/2024/06/8-2x.png)
在 Django 生态系统中,PostgreSQL 是开发者的首选数据库 (76%),这突显了开发者对用于 Web 应用程序的基于 SQL 的稳健系统的偏好。 MariaDB (10%) 和 MongoDB (8%) 等 NoSQL 数据库的使用率也值得注意,这反映了数据库格局的多样化。
尽管缺乏官方 Django 支持,无架构且可扩缩的 MongoDB 仍进入顶级数据库选择之列,这反映了开发者愿意集成更灵活、面向文档的数据库。
您使用 MongoDB 吗? 阅读这篇分步指南了解如何将 Django 与 MongoDB 连接。
Dennis Ivy 对 MongoDB 的看法:
“考虑到 Mongo 采用的不同方式以及与 Django 的不兼容性,这个数字有点出乎我的意料。 很想知道这 8% 的经验水平。 我怀疑他们是新人和/或运行实验项目的开发者。
与几位 MongoDB 团队成员交流后,我在一篇文章中总结了我对这项集成的看法。”
![您使用什么缓存后端?](https://blog.jetbrains.com/wp-content/uploads/2024/06/9-2x.png)
在缓存方面,Redis 仍然是增强 Web 应用响应能力的首选解决方案 (54%),Memcached (20%) 也越来越受欢迎。
编排:超过 50% 的 Django 开发者使用容器编排
![您在生产中使用什么容器编排服务?](https://blog.jetbrains.com/wp-content/uploads/2024/06/10-2x.png)
在受欢迎的服务中,Amazon ECS/Fargate (19%) 凭借其易用性和 AWS 集成而处于领先地位,是 AWS 生态系统中开发者的自然选择。
自托管 Kubernetes (14%) 适合寻求灵活性和基础架构控制以及在私有云和公共云之间轻松迁移和共享的受访者。 Amazon EKS (12%) 和 Docker Swarm (12%) 的流行可能归因于它们在可管理性和可扩缩性之间的平衡,可以满足多种部署需求。
处理 Kubernetes 基础架构? 阅读这篇指南了解如何在 Kubernetes 中部署 Django 应用。
CI 系统:GitHub Actions 引领行业
![您使用哪种(哪些)持续集成系统?](https://blog.jetbrains.com/wp-content/uploads/2024/06/11-2x.png)
GitHub Actions 在 CI 领域的增长(从 2021 年的 35% 到 2023 年的 45%)凸显了它对已经使用 GitHub 进行源代码管理的开发者的便利程度。 它利用直观的 YAML 文件进行管道管理,这使其成为直接在 GitHub 生态系统中自动执行软件工作流的便捷、高效的工具。 此外,它还可供按需灵活使用自定义硬件配置,并具有足够的处理能力或内存来运行更大的作业。
IaC:39% 的 Django 开发者使用基础架构即代码
![您使用哪种(哪些)基础架构即代码工具?](https://blog.jetbrains.com/wp-content/uploads/2024/06/12-2x.png)
39% 的受访者使用基础架构即代码解决方案,这凸显了通过代码实现自动化和基础架构管理的增长趋势。 对于较大的项目,IaC 可以确保更可靠、可重复和可扩缩的基础架构环境。 Terraform 是最常用的基础架构即代码配置引擎,20% 的受访者更喜欢它。
有趣的是,5% 的受访者选择了开源解决方案 Pulumi。 原因可能是,Pulumi 从一开始就提供了使用任意编程语言管理基础架构的灵活性。 这使 Pulumi 广泛适用于任何背景的开发者和 DevOps 工程师。 Terraform 在 2022 年开始通过 CDK 提供类似的选项。
根据 Django 开发者的工作和经验得出的洞察
Django 学习资源
![您使用以下哪项来关注 Django 开发?](https://blog.jetbrains.com/wp-content/uploads/2024/06/13-2x.png)
![您更喜欢使用以下哪一项来学习 Django?](https://blog.jetbrains.com/wp-content/uploads/2024/06/14-2x.png)
全职开发者较少通过观看 YouTube 学习 Django(平均 32% 对比 39%),并且较少为此使用 AI 工具(平均 22% 对比 25%)。
在团队主管中,Django News 简报、Hacker News、Reddit 甚至 X(以前称为 Twitter)都是了解 Django 发展的更流行方法。 他们甚至表示更常向朋友学习(平均 16% 对比 11%)。
初级专业人士更常使用 YouTube 和 Stack Overflow,既是为了教育目的,也是为了跟上 Django 生态系统的发展。 对于喜欢的学习方法,他们往往比资深同事更常使用新的 AI 工具(平均 38% 对比 25%)。
其他
- 全职 Django 开发者更有可能仅将 Django 用于工作(平均 23% 对比 17%)。
- 团队主管和全职开发者整体最喜欢的核心组件是迁移性,不太喜欢的组件包括身份验证、模板,甚至基于类的视图。
- 对于主要编辑器,团队主管倾向于使用 PyCharm(平均 31% 对比 29%)和 Vim(平均 12% 对比 7%),而不是 VS Code(平均 31% 对比 29%)。
开始使用 PyCharm 开发 Django 应用
您使用 Django 吗? PyCharm 是适用于 Django 的一流 IDE。 使用 Django 特定的代码洞察、代码补全和高亮显示更快地编码。 轻松浏览项目。 一键连接到您的数据库,并使用 TypeScript、JavaScript 和其他前端框架。 PyCharm 也直接支持 Flask 和 FastAPI。
调查统计数据
滤除重复和不可靠的回复后,数据集包含 2023 年 9 月和 10 月收集的约 4,000 份回复。
区域分布
![您位于哪个地区?](https://blog.jetbrains.com/wp-content/uploads/2024/06/15-2x.png)
44% 的受访者位于欧洲,19% 位于北美,17% 位于亚洲。
年龄分布
![能否告诉我们您的年龄段?](https://blog.jetbrains.com/wp-content/uploads/2024/06/16-2x.png)
大多数受访者的年龄在 21 到 49 岁之间。 在所有受访者中,38% 的人年龄在 31 到 39 岁之间,30% 的人年龄在 21 到 29 岁之间。
专业编码经验
![您有多少年的完整专业编码经验?](https://blog.jetbrains.com/wp-content/uploads/2024/06/17-2x.png)
大多数受访者具有超过 11 年的专业编码经验。 24% 的调查参与者拥有 3 到 5 年的专业编码经验,19% 拥有 6 到 10 年的专业开发经验。 25% 的受访者专业开发经验不足两年。
工作角色
![您的工作角色是什么?](https://blog.jetbrains.com/wp-content/uploads/2024/06/18-2x.png)
79% 的受访者表示他们的工作职责包括开发/编程或软件工程。 16% 的受访者是团队主管。 10% 的受访者表示他们的工作包括数据分析、数据工程或数据科学。
数据集仅包含来自官方 Django Software Foundation 渠道的回复。 这些回复收集自官方 Django 渠道上的调查推广,例如 djangoproject.com 和 DSF 的 X(以前称为 Twitter)账号,没有任何 JetBrains 渠道的参与。 为了防止调查偏向于任何特定的工具或技术,未使用任何与产品、服务或供应商相关的渠道收集回复。
想了解详情? 探索 2023 Django 开发者调查以查看完整调查数据。
本博文英文原作者: