本报告基于由 Django Software Foundation 和 PyCharm 于 2023 年 9 月至 10 月联合开展的第三次年度 Django 开发者调查。来自世界各地的约 4,000 名 Django 用户和爱好者参与了调查,帮助我们更好地了解框架及其生态系统的现状。
既用于工作,也用于我的个人、教育或副业项目
仅用于我的个人、教育或副业项目
仅用于工作
2021 年 | 2022 年 | 2023 年 | |
---|---|---|---|
– | – | 69% | 4.2 |
– | 55% | 25% | 4.1 |
– | 34% | 16% | 4.0 |
75% | 47% | 28% | 3.2 |
30% | 10% | 5% | 3.1 |
39% | 13% | 8% | 3.0 或更低版本 |
3% | 3% | 4% | 我不确定 |
在 2023 年 9 月至 10 月调查期间,4.2、4.1 和 3.2 是 Django 积极支持的唯一版本。4.0、3.1 和 3.0 及以下版本不再具有安全支持。
最新的稳定版本
最新的 LTS 版本
其他
每个稳定版本
仅 LTS
每个月度修正版本
我使用不受支持的 Django 版本
其他
Django 模板
Jinja2
其他
无
42%
41%
pytest
33%
31%
pytest-django
31%
36%
unittest (manage.py test)
24%
21%
coverage
15%
10%
Selenium
自去年以来,Selenium 和 Playwright 的受欢迎程度分别从 10% 和 3% 增长到 15% 和 9%。Playwright 还有一个优秀的 pytest 插件,可以在 Docker 容器中运行。
28%
25%
ASGI
25%
23%
asyncio
21%
18%
FastAPI
19%
15%
Uvicorn
18%
15%
Channels
虽然 Django 对 ASGI 下异步视图的编写和部署有良好的内置支持,但 FastAPI 在 Django 开发者中仍然更受欢迎。随着 Django 的异步支持在后续版本中不断成熟,这种情况可能会发生变化。
2021 年 | 2022 年 | 2023 年 | |
---|---|---|---|
68% | 62% | 56% | Bootstrap |
15% | 22% | 29% | Tailwind CSS |
14% | 13% | 18% | 纯 CSS |
12% | 9% | 11% | Material Design/Lite |
6% | 6% | 8% | Bulma |
3% | 2% | 4% | Semantic UI |
2% | 1% | 5% | Foundation |
2% | 2% | 3% | UI Kit |
1% | 1% | 3% | Skeleton |
0% | 0% | 2% | Susy |
4% | 5% | 5% | 其他 |
16% | 17% | 15% | 无 |
Bootstrap 连续三年呈下降趋势,而 Tailwind CSS 则显著增长,受欢迎程度在过去两年翻了一番。如果您想开始在 Django 中使用 Tailwind CSS,可以阅读软件包创建者 Tim Kamanin 的这篇文章。
2021 年 | 2022 年 | 2023 年 | |
---|---|---|---|
37% | 36% | 35% | React |
37% | 32% | 31% | jQuery |
5% | 16% | 23% | htmx |
28% | 25% | 19% | Vue |
10% | 8% | 10% | Angular |
3% | 6% | 10% | Alpine.js |
1% | 1% | 4% | Backbone |
– | 3% | 4% | Svelte |
1% | 1% | 3% | Ember |
0% | 0% | 3% | Mako |
3% | 4% | 4% | 其他 |
20% | 19% | 18% | 无 |
49%
60%
djangorestframework
27%
28%
django-debug-toolbar
27%
28%
django-celery
18%
17%
django-allauth
18%
18%
django-cors-headers
全栈
使用 DRF 的 REST API
其他
2021 年 | 2022 年 | 2023 年 | |
---|---|---|---|
35% | 42% | 45% | GitHub Actions |
27% | 28% | 25% | GitLab CI |
12% | 10% | 11% | Jenkins/Hudson |
8% | 8% | 5% | CircleCI |
– | – | 5% | AWS CodePipeline |
– | – | 5% | Azure Pipelines |
6% | 2% | 4% | Travis CI |
– | – | 4% | Google Cloud Build |
– | – | 3% | Buildkite |
1% | 1% | 2% | TeamCity |
7% | 6% | 4% | 其他 |
32% | 28% | 25% | 无 |
一些,或者有时
一点,或者几乎从不
许多,或者经常
无,或者从来没有
是
不,我使用 Python 作为次要语言
其他
此问题仅向主要语言不是 Python 的受访者显示。
54%
59%
djangoproject.com
24%
26%
Stack Overflow
21%
18%
YouTube
18%
20%
Reddit (r/django)
17%
10%
Django 论坛
17%
15%
Django News 简报
17%
16%
我不关注 Django 开发
14%
20%
X (Twitter)
12%
11%
朋友
12%
11%
Hacker News
2023 年,Django 开始积极管理 Mastodon 上的页面。Mastodon 的最大用户比例在北美。同时,X(以前称为 Twitter)用户比例略有下降。
去年以来,Django 论坛的占比从 10% 增加到 17%,Django Discord 的受欢迎程度也有所增加。djangoproject.com 鼓励用户前往这两个渠道寻找社区和支持。
71%
80%
djangoproject.com
41%
–
StackOverflow
38%
40%
YouTube
37%
45%
博客
26% 的开发者已经在使用新兴 AI 工具学习 Django。
65%
–
3.11
46%
58%
3.10
29%
51%
3.9
20%
36%
3.8
8%
17%
3.7
2021 年 | 2022 年 | 2023 年 | |
---|---|---|---|
44% | 55% | 52% | venv |
40% | 42% | 40% | Docker |
55% | 43% | 34% | Virtualenv |
13% | 19% | 21% | Poetry |
23% | 21% | 19% | Pipenv |
8% | 7% | 10% | Conda |
3% | 2% | 3% | Vagrant/虚拟机 |
2% | 3% | 3% | 其他 |
3% | 3% | 5% | 无 |
45%
55%
Psycopg2
44%
51%
Requests
34%
40%
Gunicorn
32%
36%
Celery
30%
32%
pytest
Django 4.2 中添加了对 psycopg 3.1.8+ 的支持,对 psycopg2 的支持可能会在将来被弃用和移除。
2021 年 | 2022 年 | 2023 年 | |
---|---|---|---|
26% | 41% | 42% | Black |
40% | 43% | 37% | Flake8 |
37% | 33% | 29% | pylint |
14% | 18% | 20% | mypy |
4% | 3% | 11% | 其他 |
26% | 23% | 21% | 无 |
2021 年 | 2022 年 | 2023 年 | |
---|---|---|---|
43% | 44% | 39% | AWS |
25% | 23% | 23% | DigitalOcean |
13% | 12% | 17% | Google Cloud Platform |
27% | 21% | 16% | Heroku |
11% | 10% | 13% | PythonAnywhere |
8% | 8% | 11% | Microsoft Azure |
6% | 7% | 9% | Linode |
1% | 1% | 5% | OpenStack |
– | 3% | 5% | Fly.io |
1% | 1% | 4% | OpenShift |
0% | 0% | 4% | Rackspace |
11% | 13% | 17% | 其他 |
19% | 20% | 16% | 无 |
在 Heroku 取消免费产品方案后,它的用户占比从 2021 年的 27% 下降到 2023 年的 16%。
我在开发过程中使用容器
我构建的应用程序在生产环境的容器中运行
在 CI/CD 流程中使用容器
不/我不确定
我将容器用于其他目的
我开发或我的团队开发的应用程序代码
我的代码连接到的支持服务
我在开发过程中使用的实用工具
其他
在 virtualenv 内
在容器内,在我的计算机上
在我的计算机上使用系统解释器
在容器内,在另一台计算机上
在容器外的另一台计算机上
其他
使用 print 或者 log 语句
使用我的 IDE
使用 shell / pdb
其他
我只使用 log 语句
我经常在远程运行或在容器中运行的应用程序上使用调试器
我已经附加过一到两次调试器
不支持
我在团队中工作
我独立从事自己的项目
我担任外部顾问或培训师
我参与许多不同的项目
我参与一个主项目和几个副项目
我只参与一个项目
18-20 岁
21-29 岁
30-39 岁
40-49 岁
50-59 岁
60 岁或以上
不便回答
去年,DjangoCon Africa 首次举办。