调查了全球 4000 名开发者后,我们对 Django 的认知又多了这些…… | Django 开发者调查
Django 开发现状如何?PyCharm 与 Django Foundation 合作,调查采访了全球 4,000 多名 Django 开发者,并根据回复分析了框架的使用趋势。
在这篇博文中,我们将与您分享以下主要发现:
-
每三名 Django 开发者中有一名也使用 Flask 或 FastAPI。
-
大多数开发者使用 Django 进行全栈和 API 开发。
-
61% 的 Django 开发者使用异步技术。
-
还有更多洞察!
详细了解这些发现,探索 Django 开发中的其他趋势,并从图解信息图中受益。
后端:
每三名 Django 开发者中
有一名也使用 Flask 或 FastAPI
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 在全栈 (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 开发者使用异步
Django 开发者明显转向使用异步技术,目前有 61% 在项目中加入异步技术(去年这一比例为 53%)。
FastAPI 在构建时充分考虑了异步编程,目前 21% 使用异步技术的 Django 开发者在使用 FastAPI。使用 Django 异步视图的受访者也在增加 (14%),但 FastAPI 在异步任务中仍然更受欢迎。即将发布的 Django 5 预计会提供更多异步支持,因此在 Django 中使用异步的兴趣可能会进一步提升。
前端:Django 开发者对 htmx、
Alpine.js 和 Tailwind CSS
的偏好转变
在前端方面,JavaScript 仍然是最受欢迎的语言,68% 的开发者表示正在使用。不过,其领先优势有所动摇(2021 年和 2022 年为 75%),而 TypeScript 已从 2021 年的 19% 大幅提高到 2023 年的 28%。这种受欢迎程度提升可能得益于 TypeScript 的静态类型特性,这有助于在开发过程早期发现错误,使代码更加稳健和易于维护。
专业 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 项目。”
Bootstrap 继续呈下降趋势,而 Tailwind CSS 则显著提升,受欢迎程度在过去两年翻了一番。与 Bootstrap 相比,Tailwind CSS 的受欢迎程度日益增长,表明人们渴望在 Web 项目中采用可定制程度更高、规定更少的样式设置方式。阅读软件包创建者 Tim Kamanin 的文章,了解如何在 Django 中使用 Tailwind CSS。
Dennis Ivy 对 Tailwind CSS 的看法:
“很高兴看到 Tailwind-Django 的使用率有所增加。希望这个领域有更多原生集成和教育内容。”
数据库:
75% 的 Django 开发者
偏好 PostgreSQL,
50% 依赖于 Redis 进行缓存
在 Django 生态系统中,PostgreSQL 是开发者的首选数据库 (76%),这突显了开发者对用于 Web 应用程序的基于 SQL 的稳健系统的偏好。MariaDB (10%) 和 MongoDB (8%) 等 NoSQL 数据库的使用率也值得注意,这反映了数据库格局的多样化。
尽管缺乏官方 Django 支持,无架构且可扩缩的 MongoDB 仍进入顶级数据库选择之列,这反映了开发者愿意集成更灵活、面向文档的数据库。
您使用 MongoDB 吗?阅读这篇分步指南了解如何将 Django 与 MongoDB 连接。
Dennis Ivy 对 MongoDB 的看法:
“考虑到 Mongo 采用的不同方式以及与 Django 的不兼容性,这个数字有点出乎我的意料。很想知道这 8% 的经验水平。我怀疑他们是新人和/或运行实验项目的开发者。
与几位 MongoDB 团队成员交流后,我在一篇文章中总结了我对这项集成的看法。”
在缓存方面,Redis 仍然是增强 Web 应用响应能力的首选解决方案 (54%),Memcached (20%) 也越来越受欢迎。
编排:
超过 50% 的 Django 开发者
使用容器编排
在受欢迎的服务中,Amazon ECS/Fargate (19%) 凭借其易用性和 AWS 集成而处于领先地位,是 AWS 生态系统中开发者的自然选择。
自托管 Kubernetes (14%) 适合寻求灵活性和基础架构控制以及在私有云和公共云之间轻松迁移和共享的受访者。Amazon EKS (12%) 和 Docker Swarm (12%) 的流行可能归因于它们在可管理性和可扩缩性之间的平衡,可以满足多种部署需求。
处理 Kubernetes 基础架构?阅读这篇指南了解如何在 Kubernetes 中部署 Django 应用。
CI 系统:
GitHub Actions 引领行业
GitHub Actions 在 CI 领域的增长(从 2021 年的 35% 到 2023 年的 45%)凸显了它对已经使用 GitHub 进行源代码管理的开发者的便利程度。它利用直观的 YAML 文件进行管道管理,这使其成为直接在 GitHub 生态系统中自动执行软件工作流的便捷、高效的工具。此外,它还可供按需灵活使用自定义硬件配置,并具有足够的处理能力或内存来运行更大的作业。
IaC:
39% 的 Django 开发者
使用基础架构即代码
39% 的受访者使用基础架构即代码解决方案,这凸显了通过代码实现自动化和基础架构管理的增长趋势。对于较大的项目,IaC 可以确保更可靠、可重复和可扩缩的基础架构环境。Terraform 是最常用的基础架构即代码配置引擎,20% 的受访者更喜欢它。
有趣的是,5% 的受访者选择了开源解决方案 Pulumi。原因可能是,Pulumi 从一开始就提供了使用任意编程语言管理基础架构的灵活性。这使 Pulumi 广泛适用于任何背景的开发者和 DevOps 工程师。Terraform 在 2022 年开始通过 CDK 提供类似的选项。
根据 Django 开发者的工作
和经验得出的洞察
Django 学习资源
全职开发者较少通过观看 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 份回复。
区域分布
年龄分布
大多数受访者的年龄在 21 到 49 岁之间。在所有受访者中,38% 的人年龄在 31 到 39 岁之间,30% 的人年龄在 21 到 29 岁之间。
专业编码经验
大多数受访者具有超过 11 年的专业编码经验。24% 的调查参与者拥有 3 到 5 年的专业编码经验,19% 拥有 6 到 10 年的专业开发经验。25% 的受访者专业开发经验不足两年。
工作角色
79% 的受访者表示他们的工作职责包括开发/编程或软件工程。16% 的受访者是团队主管。10% 的受访者表示他们的工作包括数据分析、数据工程或数据科学。
数据集仅包含来自官方 Django Software Foundation 渠道的回复。这些回复收集自官方 Django 渠道上的调查推广,例如 djangoproject.com 和 DSF 的 X(以前称为 Twitter)账号,没有任何 JetBrains 渠道的参与。为了防止调查偏向于任何特定的工具或技术,未使用任何与产品、服务或供应商相关的渠道收集回复。
想了解详情?探索 2023 Django 开发者调查以查看完整调查数据。
本博文英文原作者:Valeria Letusheva
更多阅读推荐
新发布
JetBrains Toolbox App 2.4 新特性一览
JetBrains 全系列 IDE 2024.1 更新概览
CLion Nova:使用 ReSharper C++/Rider C++ 语言引擎的 CLion
调研报告
IDE 使用技巧
⏬ 戳「阅读原文」查看 Django 开发者调查完整结果!
本文分享自微信公众号 - JetBrains(JetBrainsChina)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
PieCloudDB Database 并行计算加速功能:线性提升单个查询效率
云原生虚拟数仓 PieCloudDB Database,采用存算分离架构,打造了全新的 eMPP(elastic MPP)架构,具备高弹性、高安全、高在线,赋能企业的数字化转型。PieCloudDB 打造了向量化执行引擎、全新的存储引擎 JANM、元数据管理系统 MUNDO 等组件,通过聚集下推、数据裁剪等功能来进一步提升查询效率。本文将介绍 PieCloudDB 如何打造并行计算加速技术来提升查询性能。 在部署集群的过程中,PieCloudDB 在每个物理节点会配置一定数量的执行器(Executor)。这种配置策略确保了在面对高并发需求时,集群依然能够保持高度的可用性。然而,单个查询在执行过程中可能会受到执行器数量的限制,会对 CPU 的充分利用、磁盘 I/O 的性能以及网络带宽的利用效率造成一定影响。 为了解决这一性能瓶颈,进一步提高单个查询下的 CPU、磁盘和网络利用率,PieCloudDB 打造并启用了基于执行器的并行计算加速功能。这项技术不仅与 PostgreSQL 的并行工作器(parallel worker)机制相得益彰,还扩展了其功能,支持并行扫描(parallel s...
- 下一篇
一文详解 JuiceFS 读性能:预读、预取、缓存、FUSE 和对象存储
在高性能计算场景中,往往采用全闪存架构和内核态并行文件系统,以满足性能要求。随着数据规模的增加和分布式系统集群规模的增加,全闪存的高成本和内核客户端的运维复杂性成为主要挑战。 JuiceFS,是一款全用户态的云原生分布式文件系统,通过分布式缓存大幅提升 I/O 吞吐量,并使用成本较低的对象存储来完成数据存储,适用于大规模 AI 业务。 JuiceFS 数据读取流程从客户端的读请求开始,然后再经过 FUSE 发送给 JuiceFS 客户端,通过预读缓冲层,接着进入缓存层,最终访问对象存储。为了提高读取效率,JuiceFS 在其架构设计中采用了包括数据预读、预取和缓存在内的多种策略。 本文将详细解析这些策略的工作原理,并分享我们在特定场景下的测试结果,以便读者深入理解 JuiceFS 的性能优势及一些相关的限制,从而更有效地应用于各种使用场景。 鉴于文章内容的深度和技术性,需要读者有一定操作系统知识,建议收藏以便在需要时进行仔细阅读。 01 JuiceFS 架构简介 JuiceFS 社区版架构分为客户端、数据存储和元数据三部分。 数据访问支持多种接口,包括 POSIX 、HDFS API、...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
- CentOS关闭SELinux安全模块
- SpringBoot2更换Tomcat为Jetty,小型站点的福音
- CentOS8安装Docker,最新的服务器搭配容器使用
- CentOS7,8上快速安装Gitea,搭建Git服务器
- Windows10,CentOS7,CentOS8安装Nodejs环境
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- CentOS7安装Docker,走上虚拟化容器引擎之路
- SpringBoot2整合Redis,开启缓存,提高访问速度