Django 软件基金会与 JetBrains 再次联手,正式启动 2026 Django Developers Survey。这不是一次普通的"填问卷拿奖品"活动——过去几轮调查的数据直接影响了 Django 的技术路线和社区资源分配。如果你在日常工作中依赖 Django,你的真实使用情况就是最有价值的反馈。
为什么开发者调查值得认真对待
每一轮调查结果都会公开发布聚合数据。这些数据被用来:
- 判断哪些功能需要优先维护或弃用——比如异步视图的采用率、旧版 Python 的残留比例,直接影响 DEP(Django Enhancement Proposal)的推进优先级。
- 识别社区断层——哪些地区缺少本地化支持、新手入门障碍在哪里,都从地理和经验分布数据中暴露出来。
- 为生态工具提供方向——第三方包维护者会参考调查结果决定兼容策略,比如是否继续支持 Django 3.2 LTS。
上一轮调查揭示了不少有意思的趋势:PostgreSQL 依然是绝对主流数据库,但 SQLite 的占比在小型项目中明显上升;DRF(Django REST Framework)仍是 API 开发首选,但 Ninja 的渗透率开始抬头。这些结论不是凭空猜出来的,而是来自几千名开发者的一手数据。
填问卷前,先搞清楚自己的技术栈
调查会问你用的 Django 版本、Python 版本、数据库后端、部署方式、主要第三方包等。与其临时回忆,不如跑一段脚本把当前项目的关键信息提取出来,填问卷时直接参考。
下面这个脚本可以挂在你任何一个 Django 项目的根目录下运行:
#!/usr/bin/env python
# save as inspect_django_stack.py and run: python inspect_django_stack.py
import sys
import os
def main():
# 确保 Django 项目设置已加载
# 如果你的项目用 manage.py 启动,需要指定 settings 模块
settings_module = os.environ.get("DJANGO_SETTINGS_MODULE")
if not settings_module:
# 尝试自动检测常见配置
for candidate in ["myproject.settings", "config.settings", "settings"]:
try:
os.environ["DJANGO_SETTINGS_MODULE"] = candidate
import django
django.setup()
settings_module = candidate
break
except Exception:
continue
else:
import django
django.setup()
from django.conf import settings
print("=" * 50)
print("Django 项目技术栈速查")
print("=" * 50)
# Django 与 Python 版本
import django
print(f"Python 版本: {sys.version}")
print(f"Django 版本: {django.VERSION} (即 {django.get_version()})")
# 数据库后端
db_configs = settings.DATABASES
for alias, config in db_configs.items():
engine = config.get("ENGINE", "未设置")
# 简化引擎名称
engine_short = engine.split(".")[-1] if "." in engine else engine
print(f"数据库 [{alias}]: {engine_short}")
# 已安装的 Django 应用
installed = settings.INSTALLED_APPS
third_party = [a for a in installed if not a.startswith("django.") and not a.startswith(("admin", "auth", "contenttypes", "sessions", "messages", "staticfiles"))]
print(f"第三方/自定义 App 数量: {len(third_party)}")
if third_party:
print(" 主要第三方包:")
for app in third_party[:15]:
print(f" - {app}")
if len(third_party) > 15:
print(f" ... 及另外 {len(third_party) - 15} 个")
# 关键配置项
print(f"DEBUG 模式: {settings.DEBUG}")
print(f"ASGI 配置: {getattr(settings, 'ASGI_APPLICATION', '未设置')}")
print(f"WSGI 配置: {getattr(settings, 'WSGI_APPLICATION', '未设置')}")
# 模板引擎
template_engines = settings.TEMPLATES
for i, engine in enumerate(template_engines):
backend = engine.get("BACKEND", "").split(".")[-1]
print(f"模板引擎 [{i}]: {backend}")
# 静态文件存储后端
static_storage = getattr(settings, "STATICFILES_STORAGE", getattr(settings, "STORAGES", {}).get("staticfiles", {}).get("BACKEND", "django.contrib.staticfiles.storage.StaticFilesStorage"))
static_short = static_storage.split(".")[-1] if "." in static_storage else static_storage
print(f"静态文件存储: {static_short}")
# 国际化
use_i18n = getattr(settings, "USE_I18N", False)
lang = getattr(settings, "LANGUAGE_CODE", "en-us")
print(f"国际化 (i18n): {use_i18n} 默认语言: {lang}")
print("=" * 50)
print("以上信息可直接用于填写开发者调查问卷")
if __name__ == "__main__":
main()
运行方式——在你的 Django 项目目录下:
# 如果你的 settings 模块是 myproject.settings
DJANGO_SETTINGS_MODULE=myproject.settings python inspect_django_stack.py
# 或者直接通过 manage.py 触发
python manage.py shell -c "
import django, sys
django.setup()
from django.conf import settings
print(f'Django: {django.get_version()}')
print(f'Python: {sys.version_info.major}.{sys.version_info.minor}')
print(f'DB engines: {[db[\"ENGINE\"].split(\".\")[-1] for db in settings.DATABASES.values()]}')
print(f'3rd-party apps: {[a for a in settings.INSTALLED_APPS if not a.startswith(\"django.\")]}')
"
第二种方式更轻量,不需要额外脚本文件,一行命令就能拿到核心数据。
参与方式与渠道分发
调查链接按社交平台做了区分,方便统计来源分布。选择你常用的平台入口即可:
| 平台 | 链接 |
|---|---|
| Bluesky | https://surveys.jetbrains.com/s3/bs-django-developers-survey-2026 |
| Django Forum | https://surveys.jetbrains.com/s3/df-django-developers-survey-2026 |
https://surveys.jetbrains.com/s3/li-django-developers-survey-2026 |
|
| Mastodon | https://surveys.jetbrains.com/s3/md-django-developers-survey-2026 |
https://surveys.jetbrains.com/s3/r-django-developers-survey-2026 |
|
| X / Twitter | https://surveys.jetbrains.com/s3/x-django-developers-survey-2026 |
JetBrains 会从完整填写且内容有意义的参与者中随机抽取 10 人,每人发放 100 美元 Amazon 礼品卡(或等值本地货币)。但更实际的价值在于:调查结果公开后,你可以对照全社区的数据审视自己的技术选型是否偏离主流、是否踩了别人已经踩过的坑。
传播比填写更重要
Django 官方明确呼吁:填完问卷后,花一分钟转发到你所在的社区。原因很简单——回答越多样,数据越有用。如果只有北美全职工程师的数据,结论会严重偏向大型部署场景;如果兼职开发者、学生、非英语地区的用户也大量参与,才能真实反映全球生态。
几个传播建议:
- 公司内部 Slack/Discord:直接贴链接,比发到公共社交平台更容易触达和你用同一套技术栈的人。
- 本地技术社区:中文 Django 社区、高校技术社团的覆盖度历来偏低,转发时加一句"填完可以对照结果看自己是不是主流用法"会提高参与意愿。
- 开源项目维护者:如果你维护某个 Django 第三方包,在 README 或 Issue 里提一句调查链接,你的用户群体数据对包的兼容策略至关重要。
填写前的快速检查清单
- [ ] 确认自己当前主力项目的 Django 版本和 Python 版本(跑上面的脚本)
- [ ] 回忆部署方式:裸机 / Docker / Kubernetes / 云平台(Heroku、Render 等)
- [ ] 列出最依赖的 3-5 个第三方包(DRF、Celery、django-debug-toolbar 等)
- [ ] 确认数据库后端和缓存后端
- [ ] 想清楚你在 Django 生态里最希望改进的地方——这部分是开放文本,最有影响力
调查关闭后聚合数据会公开发布。届时不妨回头看看:你的技术栈和全球趋势是否一致,你踩的痛点是不是社区共同的痛点。这才是填问卷的真正回报。