返回文章列表文章索引阅读全文
STARBLOG / 阅读手记
Django

Is Django Outdated? Reflections from ASGI to the AI Era

Django outdated? It's just that the technology trends have changed, and its shortcomings in asynchronous support are even more apparent in the AI era. No matter how stable the ecosystem engineering is, it can't withstand the impact of lightweight frameworks and ASGI. Should independent developers start considering new options?

曦远 (DealiAxy)约 10 分钟
目录5 个章节

Foreword

This article was originally just a thought in the blog post for the new release of DjangoStarter v3.2.1, but as I wrote more and more, I decided to split it into a separate article. 😄


"Is Django outdated?"

This is a question that can almost be seen daily on forums, Reddit, or Zhihu.

But upon closer thought, the underlying issue behind this question is not that "Django has become bad," but rather that technological trends have changed.

Async Pain Points

In summary, Django's biggest issue isn't performance—it's its poor support for asynchronous operations, a limitation that becomes even more pronounced in the AI era. WSGI seems truly outdated; large model streaming requires SSE, and real-time collaboration/conversations require WebSocket. In this regard, Django is indeed at a disadvantage.

While Django can use ASGI servers like Daphne from the Python ecosystem, the fact that Django ORM still doesn't support asynchronous operations as of 2025 makes development painfully cumbersome.

Although Django can handle asynchronous communication using Channels + Daphne, the overall development experience is far from smooth. I've encountered these pitfalls before; for reference: Using Django-Channels for WebSocket Communication + Large Model Conversations.

Ecosystem and Engineering

But this does not mean Django is outdated. On the contrary, Django's value remains irreplaceable:

  • Mature ecosystem: Almost any functionality has a pre-built solution ("reinventing the wheel")—authentication, admin panels, permissions, payments, etc.
  • Well-established engineering practices: From project structure to configuration, from security to ORM, Django has already thought it through for you.
  • Proven over time: Companies like Instagram and YouTube still use it, demonstrating its reliability.

Over the years, Django has built up a vast ecosystem and accumulated excellent engineering practices.

There's a saying that "any Python web project will eventually evolve to resemble Django."

This isn't an exaggeration—when a project scales, you'll realize Django's approach is actually the most stable.

This clearly demonstrates Django's strengths in developing large-scale projects, further backed by its adoption in products like Instagram and YouTube.

New Challenges in the AI Era

However, from the perspective of independent developers or AI-native applications, Django's shortcomings become more pronounced:

  • Real-time capability: Large language model interactions inherently rely on SSE/WebSocket. Django can handle this, but it's not built-in natively.
  • Lightweight nature: Frameworks like Next.js and FastAPI are better suited to the approach of "full-stack integration + async-first."
  • Trial-and-error cost: Starting a complete project with Django involves higher costs and is less flexible compared to lightweight frameworks.

Therefore, for me, while DjangoStarter will continue to be maintained, I may not prioritize Django for my future new products.

Conclusion

Django is not outdated; it remains an extremely robust choice.

  • If you are part of an enterprise team working on a medium-to-large, long-term maintenance project: Django is still a top-tier framework;
  • If you are an independent developer aiming for rapid iteration and exploring AI-native applications: you may need to consider alternatives like LiteStar, Next.js, etc.

The final choice of framework depends on your project type and goals.

For me, Django is no longer my first choice, but it will always be the most reliable old companion in my toolbox.

_EOF_

Is Django Outdated? Reflections from ASGI to the AI Era

本文作者:
程序设计实验室
版权声明:
本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!

相关文章

聊聊Django应用的部署和性能的那些事儿

前言 随着工作的深入,我越来越发现Python Web开发中有很多坑,也一直在羡慕AspNetCore和Go等的可执行文件部署和高性能,以及Spring生态的丰富,不过因为工作用了Django,生活还是要继续的嘛,这Django好歹也是有很大份额的Web框架,也没那么不堪,至少开发速度上就吊打一众框架了~ 在之前的文章里我介绍过使用Docker部署Django应用的方法,不过那种部署方式只适合上线

2022-05-27 · Django · 约 1 分钟

Django数据库性能优化之使用Python集合操作

前言 最近有个新需求: 人员基础信息(记作人员A),10w 某种类型的人员信息(记作人员B),1000 要求在后台上(Django Admin)分别展示:已录入A的人员B列表、未录入的人员B列表 团队的DBA提议使用视图可以解决这个问题(不愧是搞数据库的) PS:起先我觉得Django的Model是直接管理数据库表的,使用Model来映射数据库模型怕是有一定的麻烦,不过查了一下资料发现并不会~ 只

2022-08-26 · Django · 约 1 分钟

DjangoRestFramework框架三种分页功能的实现 - 在DjangoStarter项目模板中封装

前言 继续Django后端开发系列文章。刚好遇到一个分页的需求,就记录一下。 Django作为一个“全家桶”型的框架,本身啥都有,分页组件也是有的,但默认的分页组件没有对API开发做优化,所以DjangoRestFramework这个专门写API的框架又把Django的分页组件包装了一层,集成在viewsets里的时候会更方便。 不过我们不可能一直用viewsets,有一部分API还是要用自由度更

2022-08-26 · Django · 约 1 分钟

讨论

共 0 条

良言一句三冬暖,恶语伤人六月寒。

加载评论中…