Django过时了吗?从ASGI到AI时代的思考
Django过时?技术趋势变了而已,异步支持短板在AI时代更明显。生态工程化再稳,也挡不住轻量框架和ASGI的冲击。独立开发者该考虑新选择了?
目录5 个章节
前言
本文本来只是 DjangoStarter v3.2.1 新版本发布博客里的一段思考,不过越写越长,干脆拆分成一篇独立的文章得了。😄
“Django 过时了吗?”
这是一个几乎每天都能在论坛、Reddit 或知乎上看到的问题。
但仔细想想,这个问题的背后并不是“Django 变烂了”,而是技术趋势发生了变化。
异步痛点
总结下来,Django最大的问题不在于性能,应该是对异步支持不佳,这点在 AI 时代更加凸显,WSGI 似乎真有点 out 了,大模型流式输出需要 SSE,实时协作/对话需要 WebSocket,这一点上,Django 确实吃亏。
Django 可以用 python 生态的 daphne 之类的 ASGI 服务器,不过 Django ORM 到了2025年还不支持异步,导致开发起来非常痛苦。
虽然 Django 可以用 Channels + Daphne 搞定异步通信,但整个开发体验并不丝滑。这个我之前踩过坑,可以参考: 使用Django-Channels实现websocket通信+大模型对话
生态与工程化
但这并不意味着 Django 已经过时。相反,Django 的价值依然不可替代:
- 成熟的生态:几乎任何功能都有轮子(认证、后台、权限、支付…)。
- 完善的工程实践:从项目结构到配置、从安全到 ORM,Django 已经帮你想好。
- 长期验证:Instagram、YouTube 等大厂依然在用,说明它足够可靠。
Django 也在多年的发展中积累了庞大的生态,还有良好的工程实践积累。
有个说法是,“任何 python web 项目,最终都会变成 django 的样子”
这句话一点不夸张——当项目规模上来,你会发现 Django 那套东西其实最稳。
这也足以说明 Django 在开发大型项目方面的优势,而且还有 Instagram, YouTube 这类产品的背书
AI 时代的新挑战
不过,如果从 独立开发者 或 AI 原生应用 的角度看,Django 的短板就被放大了:
- 实时性:大模型交互天然依赖 SSE/WebSocket,Django 做得到,但不是天然的。
- 轻量化:像 Next.js、FastAPI 这种框架,更契合“全栈一体化 + 异步优先”的思路。
- 试错成本:Django 启动一个完整项目,成本较高,不如轻量框架灵活。
所以对我来说,虽然 DjangoStarter 还会继续维护,但我未来的新产品,未必会优先选择 Django。
结论
Django 并没有过时,它依然是一个极其稳健的选择。
- 如果你是企业团队,做的是一个中大型、长期维护的项目:Django 依旧是第一梯队框架;
- 如果你是独立开发者,目标是快速试错、探索 AI 原生应用:可能需要考虑 LiteStar、Next.js 等替代方案。
最终选择什么框架,取决于你的项目类型和目标。
对我而言,Django 不再是第一选择,但永远是我工具箱里最可靠的老伙计。
_EOF_
Django过时了吗?从ASGI到AI时代的思考
- 本文作者:
- 程序设计实验室
- 版权声明:
- 本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
相关文章
Django统一包装接口返回数据格式
前言 最近实在太忙了,开始了一个新的项目,为了快速形成产品,我选择了Django来实现后端,然后又拿起了之前我封装了项目脚手架「DjangoStarter」。 由于前段时间我写了不少.NetCore的后端代码,对CRUD的接口开发又有了一些新的理解,所以肯定也要把DjangoStarter改造一番,改得更加顺手~ 题外话:话说我在前端终于真正用上react,不得不说 ts + react 真好用,
2022-08-26 · Django · 约 1 分钟
Django数据库性能优化之使用Python集合操作
前言 最近有个新需求: 人员基础信息(记作人员A),10w 某种类型的人员信息(记作人员B),1000 要求在后台上(Django Admin)分别展示:已录入A的人员B列表、未录入的人员B列表 团队的DBA提议使用视图可以解决这个问题(不愧是搞数据库的) PS:起先我觉得Django的Model是直接管理数据库表的,使用Model来映射数据库模型怕是有一定的麻烦,不过查了一下资料发现并不会~ 只
2022-08-26 · Django · 约 1 分钟
分享一些2026年有意思的现代化Django生态组件
2026年了,若还在忍受石器时代的模板和冗余CRUD,趁早转行。Cotton和Inertia总算给Django这老古董续了命,Ninja这类工具已是开发及格线。看一眼这些现代化组件吧,别再用那些自我感动的低效代码来折磨审美了。
2026-01-21 · Django · 约 1 分钟
Django探索验证码功能的实现 - DjangoStarter项目模板里的封装
前言 依然是最近在做的这个项目,用Django做后端,App上提交信息的时候需要一个验证码来防止用户乱提交,正好我的「DjangoStarter」项目脚手架也有封装了验证码功能,不过我发现好像里面只是把验证码作为admin后台登录的校验手段,并没有给出前后端分离项目的验证码相关接口。 所以本文介绍验证码功能实现的同时,也对「DjangoStarter」的验证码模块做一层封装,使其更方便使用~ 用哪
2022-04-09 · Django · 约 1 分钟
讨论
共 0 条加载评论中…