Web Development
2025 Django 现状
Sue
Read this post in other languages:
English, Deutsch, Español, Français, 日本語, 한국어, Português do Brasil
欢迎了解近期发布的 Django 开发者调查中的核心亮点与关键结论。 这项调查已进入第四年,是 Django Software Foundation 与 PyCharm 联合发起的年度项目,汇总了全球超 4,600 名 Django 开发者的反馈。 如果您从事 Python 开发,或更广泛地涉足 Web 开发领域,从充满活力的 Django 生态系统中定能收获诸多实用信息。
我是 Will Vincent,既是 Django 社区的长期贡献者,也是 PyCharm 的技术布道师。 过去六年,我与 Jeff Triplett 联合撰写了 Django News 简报,还与 Carlton Gibson 共同主持了 Django Chat 播客;在这两个平台上,可供我们探讨的话题、软件包和行业人物似乎源源不断。
今年是 Django 诞生 20 周年,如今它已稳步迈入成熟阶段,发展态势良好。 破坏性更改极其罕见,即便其每 8 个月就会发布一个新功能版本(如 5.2、6.0、6.1 等),每周也有两位数的 PR 被合并至核心代码,并且全球社区的活力从未如此强劲。
这个蓬勃发展的生态系统离不开 Django 维护者、审查者与导师的持续付出。 每年,PyCharm 都会与 Django Software Foundation 携手,通过年度 Django 筹款活动为这些工作提供支持。
在 2025 年 11 月 11 日之前,您可以享受 PyCharm Pro 的七折优惠,同时 JetBrains 会将所有收益捐赠给 DSF,这些资金将直接用于支持相关人员,资助他们在每一个版本中持续增强 Django 的功能。 过去 9 年,这项活动已为 Django 的持续发展与稳定性建设筹集了超过 33 万美元。
以七折优惠获取 PyCharm Pro,并支持 Django
使用 Django 构建项目, 为其开创未来
在深入探讨调查结果之前,还有最后一点需要说明:尽管 Django 已被数百万开发者和部分全球最大公司采用,但它对自身的实际使用情况却不甚了解。 从设计层面来看,Django 官方网站未设置任何分析跟踪功能,除了 PyPI Stats(虽公认不够完善)之外,也没有具体的下载量统计指标。
这项调查即便不是社区了解当前 Django 使用情况的首要途径,也是主要途径之一。 近年来,调查结果推动 Redis 缓存后端在 Django 4.0 中获得了官方支持。 就在最近,MongoDB 的使用数据表现亮眼,这也促使其在今年首次优先发布了官方 django-mongodb-backend 软件包。
简而言之,这项调查至关重要,它能让我们所有人清晰地了解广大 Django 社区的实际使用趋势,以及对未来功能的需求。
2025 年 Django 核心趋势
我们一起来看看今年 Django 调查中那些值得关注、有时甚至出人意料的趋势。
Note: 2025 年 Django 现状
基于 4,600 余名 Django 开发者的调查回复
HTMX 和 Alpine.js 是当前与 Django 搭配使用的增长最快的 JavaScript 框架
38% 的开发者使用 AI 学习 Django
四分之三的 Django 开发者拥有 3 年以上的专业编码经验
Django REST Framework 是最热门的 Django 第三方软件包
75% 的开发者使用最新版本的 Django
76% 的开发者将 PostgreSQL 作为数据库后端
63% 的开发者已在使用类型提示,且更多人计划使用
20% 的开发者暂未使用
17% 计划尝试
pytest 是最受欢迎的测试解决方案
明年可尝试的可行想法
– 尝试 HTMX
– 体验 AI
– 更新至最新版本的 Django
– 持续关注 Django 生态系统的新动态
Django 开发者调查由 Django Software Foundation 与 JetBrains PyCharm 联合发起。
HTMX 与 Alpine.js 势头崛起
React 和 jQuery 仍是与 Django 搭配使用的两大最热门 JavaScript 框架,但 HTMX 和 Alpine.js 的发展势头持续增强。 这类技术更青睐服务器呈现模板加点缀式交互的实现方式。
在 20 年前 Django 刚发布时,单页应用程序 (SPA) 还十分少见。 当时多数网站依赖服务器呈现模板的超媒体模式;2006 年 jQuery 的推出让开发者无需成为 JavaScript 专家,也能为页面添加由 JavaScript 提供支持的交互效果。
时间快进至 10 年后,包括 Django 在内的许多 Web 框架开始更多地用于构建 RESTful API 后端,为 React、Angular、Vue 等专用 JavaScript 前端提供数据支持。
但自 2021 年 Django 调查启动以来,技术趋势已逐渐向服务器端模板回归。 HTMX 的使用率从 2021 年的 5% 增长至 24%,Alpine.js 则从 3% 增长至 14%。 与此同时,React 和 jQuery 的使用率持续下降:React 从 2021 年的 37% 降至 32%,jQuery 降至 26%。 值得注意的是,作为第三大热门 JavaScript 框架的 Vue 的同期使用率也从 28% 降至 17%。
即将发布的 Django 6.0 版本将为模板片段增加官方支持,这一举措将进一步巩固 HTMX/Alpine.js 组合的地位,使其成为开发者眼中切实可行的替代方案。 这项新功能的发布也凸显了 Django 生态系统的优势之一,即拥有数千个可用的第三方软件包。 部分软件包最终会被纳入核心代码,此次的模板片段功能便是如此。该功能最初是由 Carlton Gibson 开发的 django-template-partials,后在 Farhan Ali Raza 今年参与 Google Summer of Code 项目期间由其协助正式纳入核心代码。
这一切对 Django 而言意味着什么? Django 能够支持 Web 开发中的多种前端模式,这恰恰体现了它的成熟度与持续演进能力:对于偏好 SPA 架构的开发者,可以通过 django-rest-framework 或 django-ninja 构建 API 后端。同时,它也支持由 HTMX、Alpine.js 以及即将推出的模板片段功能增强的服务器呈现模板。 Django 在不断迭代以满足现代 Web 开发者需求的同时,依然保留了稳定性与安全性,正是这些特质,使其成为数百万现有用户不可或缺的工具。
AI 使用率持续上升
大多数受访者 (79%) 仍将官方文档作为主要学习资源,其次是 Stack Overflow (39%),而 AI 工具与 YouTube 则并列第三(均为 38%)。 对于 AI 工具而言,考虑到几年前这一类别尚未存在,如今能达到这样的使用率已是显著增长。 此外值得注意的是,博客 (33%) 与书籍 (22%) 的使用率如今已远远落后。
对于 Django 开发,69% 的受访者表示使用 ChatGPT,其次是 GitHub Copilot (34%)、Anthropic Claude (15%) 和 JetBrains AI Assistant (9%)。 AI 最常用于三类任务,即自动补全 (56%)、代码生成 (51%)和样板代码编写 (44%)。 预计在明年的调查结果中,该领域的使用率可能会进一步提升。
从非正式交流来看,在今年的 DjangoCon Europe 和 DjangoCon US 上,许多会场外的讨论都围绕 AI 工具展开。 目前可用的 AI 工具类型包括聊天、自动补全和智能体,这些工具都比较新,尽管 Django 论坛上已就 AI 智能体规则和相关主题展开讨论,但社区尚未就如何在 Django 开发中最佳利用这些工具达成共识。
Django 开发者经验丰富
与今年早些时候发布的 Python 调查形成鲜明对比,后者显示恰好有一半 (50%) 的受访者拥有不到两年的专业经验,Django 开发者群体则具备十分丰富的经验:30% 的受访者拥有 11 年以上经验,其次是 6-10 年经验 (26%) 和 3-5 年经验 (21%)。 这意味着 77% 的 Django 开发者,即每 4 人中就有 3 人拥有至少三年的专业编码经验。
绝大多数受访者 (82%) 除个人使用外,还会在工作中使用 Django。 约有一半 (51%) 的受访者表示会结合 Django REST Framework,使用 Django 构建后端 API,而高达 80% 的受访者会进行全栈开发,这无疑得益于日益丰富的服务器呈现模板选项。
强力类型提示支持
考虑到本次调查受访者相对丰富的经验,类型提示获得广泛支持或许并不意外:63% 的受访者表示已在 Django 代码中使用类型提示,另有 17% 计划使用,总体支持率达到了惊人的 80%。
当被问及是否应在 Django 核心代码中添加类型提示时(这是 Django 指导委员会持续讨论的议题),84% 的受访者表示赞同,其中 45% 的受访者还表示愿意为此贡献力量。
与 Python 类似,Django 长期以来一直致力于兼顾两方面需求:既对新手友好,同时也为有经验的开发者提供他们更青睐的高级工具,例如类型提示。
PostgreSQL 领跑数据库领域
在偏好的数据库后端方面,具有内置支持的数据库占据主导地位并不意外。PostgreSQL 以 76% 的占比位居第一,其次是 SQLite (42%)、MySQL (27%) 和 MariaDB (9%)。 过去四年间,这些比例始终保持着极高的稳定性。
Oracle 的使用率持续保持相对增长,从 2021 年和 2022 年的 2%,攀升至 2023 年的 10% 和 2024 年的 9%。 MongoDB 等较新的数据库也值得关注:即便没有官方支持,它在 2023 年仍取得了 8% 的份额,这表明开发者存在对由 Django 提供支持的 NoSQL 选项的需求。 此调查结果是 Mongo 团队决定投入开发官方 Django MongoDB 后端的关键因素,该后端已于今年正式发布。
未来几年的数据库支持趋势值得关注。一方面,SQLite 在生产环境(而非仅本地开发)中的应用关注度回升;另一方面,MongoDB 等 NoSQL 选项的应用也在发展。同时,观察 Oracle 能否继续维持现有使用率也将是重要的跟踪方向。
热门第三方软件包
当被问及最喜爱的五个第三方 Django 软件包时,受访者的答案呈现出长尾效应,这既体现了 Django 生态系统中软件包的深度,也反映了其广度。 djangopackages.org、awesome-django 仓库以及新推出的 Django 生态系统页面等资源均表明,Django 的核心优势在于其由第三方应用和附加组件构成的生态系统。
值得注意的是,Django REST Framework 以 49% 的支持率成为绝对热门,紧随其后的是 django-debug-toolbar (27%)、django-celery (26%)、django-cors-headers (19%)、django-filter (18%) 和 django-allauth (18%)。 在这些热门软件包之后,还有许多不同的软件包获得了支持,这再次印证了 Django 开发者可以选择的软件包范围十分广泛。
最新的 Django 版本占据主导地位
绝大多数受访者 (75%) 表示他们使用的是最新版本的 Django,考虑到其功能版本大约每八个月发布一次的节奏,这一比例相当亮眼。 例如,Django 5.1 于 2024 年 8 月发布,Django 5.2 于 2025 年 4 月发布,Django 6.0 将于 2025 年 12 月推出。
尽管发布节奏规律,Django 仍投入大量精力保持稳定性,并制定了完善的弃用与移除政策;破坏性更改十分罕见。
此外值得注意的是,部分功能版本(历史上以 .2 结尾的版本,例如 3.2、4.2 和 5.2)被设计为长期支持 (LTS) 版本,会在三年内持续获得所有安全与数据丢失修正。
尽管仅更新每个 LTS 版本是一种选择,但看到如此多的 Django 开发者选择最新版本仍令人振奋,因为这能确保大家使用的是该框架最新、功能最完善的版本。 而且,逐次更新每个功能版本,比间隔数年再更新要容易得多。
pytest 占据优势
用 Django 联合创作者 Jacob Kaplan-Moss 的话说:“没有测试的代码,本质上就是有设计缺陷的代码。” Django 拥有基于 Python 的 unittest 库构建的专属测试框架,unittest 库提供了针对 Web 应用程序定制的额外功能。 许多开发者还会使用 `pytest`(在更广泛的 Python 社区中同样流行)来获得更多测试帮助。
调查显示,`pytest` 仍是 Django 项目测试的最热门选择,占比 39%,紧随其后的是 unittest (33%)。 两款 Django 专用插件 `pytest-django` 和 `django-test-plus` 也获得了较高支持率。 21% 的开发者使用 `coverage` 库,该库能为项目测试覆盖率提供实用的衡量方式。 排名更靠后的是端到端测试工具,例如 Selenium 和 Playwright。
这些结果与 Python 生态系统中的其他情况一致:目前来看,`unittest` 和 `pytest`是测试 Python 库的两种主流方式,因此二者在 Django 测试工具中排名靠前也就不足为奇了。
可行想法
您已经读完我对今年调查结果重点内容的解读,接下来该怎么做呢? 首先要明确,Django 在设计上就是一门成熟、稳定的技术;您完全可以继续高效推进工作,放心升级到最新版本的 Python 和 Django,不必担心会因破坏性更改而突然陷入困境。
但更广泛的 Python 和开源生态系统仍在不断创新和发展,只要您愿意稍作尝试,肯定能找到提升工作效率的方法。 基于这个思路,以下是四个可行想法供您参考:
行动 1:尝试 HTMX
如果您尚未抽出时间了解 HTMX 为何备受关注,不妨访问 HTMX 网站的 Examples 部分,看看它如何实现常见的 UI 改进。 对于许多交互式元素来说,使用 HTMX 几乎跟复制粘贴一样简单;无需启动专门的 JavaScript 框架,就能实现类似效果。
行动 2:体验 AI
尽管目前尚未就具体应用方式达成明确共识,但势头已清晰表明,某种形式的 AI 工具正逐渐成为 Django 开发者标准工作流的一部分。
在使用需求光谱的一端,是希望获得最少甚至不希望获得辅助的开发者:只需要工具纠正拼写错误和明显的语言错误,仅此而已。 更进一步的是不同程度的自动补全选项,再往上是聊天辅助编程,包括生成代码段或完整代码库,并就这些内容向 LLM 提问。 目前而言,最前沿的是智能体,它们能接收提示并尝试自主解决问题。
大多数 Django 开发者都处于这个需求光谱的某个位置,正在尝试这些新型 AI 工具,但尚未完全接受。 随着未来一年工具和 IDE 集成的完善,看看明年的调查受访者会反馈哪些 AI 使用情况将会是一件有趣的事。
行动 3:更新至最新版本的 Django
充分利用 Django 和 Python 全部功能的最佳方式就是使用其最新版本。 两者均已成熟,且极少引入破坏性更改,因此现在更新比以往任何时候都更简单。 对于带有测试的生产代码库,更新过程通常很直接,只需更新版本号、运行测试套件,再修正出现的任何错误即可。
保持版本更新就像给汽车做保养,偶尔花点时间小修小补,远比等几年出现故障后再处理容易得多。 也意味着您使用的工具始终是最安全、性能最优的版本。
行动 4:及时了解 Django 生态动态
Django 是一个内置功能完善的框架和生态系统,其中新动态层出不穷。 这有时可能会让人感到应接不暇,但好消息是,无论您偏好哪种信息获取方式,都能找到对应的资源,从 Django 网站,到播客、简报、行业会议等。 近期上线的 Django 生态系统页面就是一个绝佳的入手点。
有兴趣了解更多信息吗? 点击此处查看完整的 Django 开发者调查结果。
本博文英文原作者:
Will Vincent
Will Vincent is a Python Developer Advocate at JetBrains and former Django Board Member. He is the author of 3 books on web development with Django, hosts the Django Chat podcast, and writes the Django News newsletter. In addition, he is a regular conference speaker, open-source maintainer, and founder of LearnDjango.com. Previously he worked at multiple early-stage startups, most notably Quizlet, and taught computer science at Williams College.
django
survey
Share
Subscribe to PyCharm Blog updates
Subscribe form
Also subscribe me to JetBrains for Data blog updates
By submitting this form, I agree to the JetBrains Privacy Policy Notification icon
By submitting this form, I agree that JetBrains s.r.o. ("JetBrains") may use my name, email address, and location data to send me newsletters, including commercial communications, and to process my personal data for this purpose. I agree that JetBrains may process said data using third-party services for this purpose in accordance with the JetBrains Privacy Policy. I understand that I can revoke this consent at any time in my profile. In addition, an unsubscribe link is included in each email.
Submit
Thanks, we've got you!