PyCharm 与 Django 基金会合作,对全球 4,000 多名 Django 开发者进行了调查,并根据他们的回答分析了 Django 的最新趋势。
1/3 的 Django 开发者使用 Flask 或 FastAPI
尽管与去年的 83% 相比略有下降,仍有 74% 的受访者将 Django 作为首选框架。
Flask 的热度略有下降,2022 年为 29%,2023 年为 26%。
FastAPI 的热度保持稳定,25% 的受访者表示自己正在使用 FastAPI。
将 Django 作为主要开发框架的开发者中,有 33% 的人也使用 Flask 或 FastAPI,这显示出 Python 后端开发者多样化的后端技能。
49% 的开发者反馈同时在开发多个项目,他们有可能因为不同的项目需求而选择不同的框架。
- Django – 采用“内置电池”方法,适用于更大、更复杂的 Web 应用程序。
- Flask – 适用于相对简单的应用程序,尤其是静态站点或微服务。
- FastAPI – 创建 API 端点,适用于包含大量 IO 调用的应用程序,尤其是实时 Web 应用程序。
这三个框架都用过的 Django 开发者只有 11%,说明大多数人使用 Flask 和 FastAPI 开发类似的 Web 项目,只是因为异步功能而转向 FastAPI。
开发者主要使用 Django 开发全栈项目与 API
今年的调查显示,Django 在全栈开发(73%)和 API 开发(61%)方面都很受欢迎.
对于全职开发者,他们更倾向于使用 Django 开发 REST API(65% vs. 平均 60%),但使用 Django 开发全栈项目的低于平均值(68% vs. 平均 74%)。
随着 htmx 越来越受欢迎,这种趋势也可能会发生变化,更多开发者有可能使用 Django 进行全栈开发。
尽管 DRF 在第三方软件库中仍占据领先地位,但随着以速度和类型而闻名的 Django Ninja 的不断普及,其受热度有所下降。
Django Ninja 提供高性能和异步功能,类似于 FastAPI,但在 Django 生态系统中,它的学习曲线更短。
61% 的 Django 开发者使用异步
Django 开发者明显转向使用异步技术。目前,有 61% 的开发者在项目中使用异步,去年这一比例为 53%。
FastAPI 是专为异步构建的,有 21% 的 Django 开发者为了异步而使用 FastAPI。
尽管 FastAPI 是更受欢迎的异步框架,Django 的异步视图也在逐渐被更多受访者接受(14%)。
随着 Django 5 对异步支持的提升,使用 Django 异步功能的开发者可能会进一步增加。
Django 开发者对 htmx、Alpine.js 和 Tailwind CSS 的偏好转变
JavaScript 是最受欢迎的前端语言,有 68% 的开发者使用 JavaScript,但它正逐渐将领先地位让给 TypeScript。
JavaScript 的比例从 2022 年的 75% 下降至 2023 年的 68%。
TypeScript 则从 2021 年的 19% 增长至 2023 年的 28%。
TypeScript 热度的提升是因为其静态类型功能,能帮助开发者在开发过程中提前发现错误,使代码更加健壮,也更易于维护。
Django 开发者仍然青睐 JavaScript 框架。
Vue 的使用率为 19%,jQuery 的使用率为 31%,React 的使用率为 35%,尽管它们的总体使用率逐年下降。
对于较新的框架,htmx 的使用率从 2022 年的 16% 增长到 2023 年的 23%,Alpine.js 从 6% 增长到 10%。
这一趋势表明 UI 开发将转向使用更简单的工具。
Adam Johnson 开发了一个专用的 django-htmx 包。
Bootstrap 的使用率在持续下降,Tailwind CSS 的使用率则在显著增长。
Tailwind CSS 的热度在过去两年中翻了一番。与 Bootstrap 相比,Tailwind CSS 的热度越来越高。
这表明开发者希望在 Web 项目中采用更可定制、更少规范的 CSS 实现工具。
75% 的 Django 开发者青睐 PostgreSQL
在 Django 生态系统中,PostgreSQL 是开发者的首选数据库 (76%),凸显了开发者对 SQL 的偏好。
开发者对 MongoDB (8%) 等 NoSQL 数据库的兴趣也很大,反映出数据库市场格局的多样化。
尽管缺少 Django 的官方支持,MongoDB 仍是数据库的顶级候选者,充分反映了开发者集成更灵活的,面向文档的 NoSQL 数据库的意愿。
50% 的开发者依赖 Redis 进行缓存
在缓存方面,Redis 仍是提高 Web 应用程序响应能力的首选 (54%)。
但同时, Memcached 也受到越来越多的关注 (20%) 。
超过 50% 的 Django 开发者使用容器
Amazon ECS/Fargate (19%) 凭借其易用性和与 AWS 的集成而处于领先地位,成为 AWS 生态系统中开发者的首选。
Kubernetes (14%) 则吸引了希望能灵活控制基础设施的开发者,以及在私有云和公有云之间具有轻松迁移和共享能力的开发者。
Amazon EKS (12%) 和 Docker Swarm (12%) 的流行可能是因为它们在可管理性和可扩展性之间提供了平衡,可满足各种部署需求。
GitHub Actions 成为行业领头羊
在 CI 领域的增长(2023 年为 45%,2021 年为 35%),让 GitHub Actions 凸显了它为使用 GitHub 管理源代码的开发者带来的便利。
GitHub Actions 利用简单的 YAML 文件管理管道,可直接在 GitHub 生态系统内自动化软件工作流程。
此外,它还能灵活地自定义硬件配置,其强大的处理能力和内存还支持运行规模庞大的任务。
39% 的 Django 开发者使用 IaC
39% 的受访者使用基础设施即代码(Infrastructure as code,IaC),这表明通过代码实现自动化和基础设施管理的需求在日益增长。
对于大型项目,IaC 可以确保更可靠、可重复和可扩展的基础设施设置。
Terraform 是最常用的 IaC 引擎,20% 的受访者表示他们更喜欢 Terraform 。
5% 的受访者选择了开源解决方案 Pulumi,这可能是因为 Pulumi 可以灵活地使用多种编程语言管理基础设施。
这使得具有多种编程语言背景的开发者和 DevOps 工程师都可以使用 Pulumi。
Terraform于 2022 年开始通过 CDK 提供类似的方式。
Django 学习资源
全职开发者较少通过观看 YouTube 上的视频来学习 Django(32% vs. 平均 39%),并且较少使用 AI 辅助开发工具(22% vs. 平均 26%)。
团队负责人 将 Django News、Hacker News、Reddit 及 X(前 Twitter)作为了解 Django 最新进展的渠道,大多情况下向朋友请教 Django 的知识(19% vs. 平均 17%)。
初级开发者则经常通过 YouTube 和 StackOverflow 学习,也更倾向于通过这些平台了解 Django 的消息。
初级开发者比资深开发者更频繁地使用 AI 辅助开发工具(38% vs. 平均26%)。
多样生态
全职 Django 开发者更多是仅将 Django 用于工作(23% vs. 平均 17%)。
如果把团队负责人和全职开发者并为一组的话,他们最喜欢的核心组件是迁移,不太喜欢的组件包括身份验证、模板及类视图。
团队负责人更倾向于使用 PyCharm(31% vs. 平均 29%)和 Vim(12% vs. 平均 7%),VS Code 则略少(31% vs. 平均 29%)。
受访者信息
在过滤掉重复和不可靠的答案后,本次调查的数据集包含了 2023 年 9 ~ 10 月期间收集的约 4,000 份回答。
区域分布
44% 的受访者在欧洲,19% 在北美,17% 在亚洲。
年龄分布
大多数受访者(86%)的年龄在 21 至 49 岁之间。
38% 的受访者年龄在 31 至 39 岁之间。
30% 的受访者年龄在 21 至 29 岁之间。
开发经验
32% 的受访者拥有 11 年以上的专业开发经验。
24% 的受访者拥有 3-5 年的专业开发经验。
19% 的受访者拥有 6-10 年的专业开发者经验。
从事专业开发工作不到两年的受访者占 25%。
岗位职责
79% 的受访者的岗位职责包括开发/编程或软件工程。
16% 的受访者是团队负责人。
10% 的受访者的工作包括数据分析、数据工程或数据科学。