分享一些2026年有意思的现代化Django生态组件
2026年了,若还在忍受石器时代的模板和冗余CRUD,趁早转行。Cotton和Inertia总算给Django这老古董续了命,Ninja这类工具已是开发及格线。看一眼这些现代化组件吧,别再用那些自我感动的低效代码来折磨审美了。
目录15 个章节
前言
这几天高强度进行 DjangoStarter 项目开发,过程也发现一些问题,比如 UI 风格不一致、架构、测试问题等。
在 GitHub 逛了一圈,我发现了一些 Django 生态的新玩意。
本文简单分享一下。
新玩意
django-cotton
Bringing component-based design to django templates
彻底改变模板写法
Django 原生 Template 系统的“补完计划”。
以往 Django 模板通过 {% include %} 或 {% block %} 实现复用,语法笨重且难以传递复杂数据。
- 核心价值:引入类似 Vue/React 的
<c-component>标签语法。 - 现代点:支持属性传递、插槽(Slots)以及组件作用域,让传统的
.html模板具备了组件化框架的开发手感。
copier
A library and CLI app for rendering project templates.
更好的项目脚手架
虽然它不是 Django 专有的,但在 Django 社区中正迅速取代老的 cookiecutter。
- 核心价值:支持模板更新。过去用 cookiecutter 生成项目后,如果脚手架升级了,你很难将更新同步到已有项目。Copier 通过智能 Diff 解决了这个问题。
- Django 关联:很多现代 Django 样板项目(如著名的 Cookiecutter Django 的后继者们)开始转向 Copier。
- 后续我也可以把这个工具作为 DjangoStarter 的脚手架
Inertia.js
Build frontend experiences with the backend you love.
Develop React, Vue, and Svelte SPAs with the elegance of server-side routing. Plug and play with any backend, meticulously optimized for Laravel. No API required.
Inertia 被称为“经典单体应用的现代桥梁”。
- 核心价值:你不需要写一行 Django REST Framework 代码,不需要处理 JWT 或 CORS。你像写传统 Django 视图一样返回响应,但前端却可以使用 React/Vue/Svelte 渲染。
- 现状:在 Laravel 生态大火后,
inertia-django在 2025 年成了 Django 社区追求 SPA 体验而不想要 API 负担的首选方案。
shadcn-django
Beautiful, accessible components for Django using Tailwind CSS and Alpine.js. Open source. Customizable.
受前端界 shadcn/ui 启发,它为 Django 开发者带来了“可以直接复制源码”的组件化体验。
核心价值:结合了 Tailwind CSS 和 Alpine.js。它不是一个臃肿的第三方库,而是提供了一套设计精良的代码片段,让你通过 Django 组件(配合 Cotton 使用效果更佳)快速构建专业级后台或 SaaS 界面。
Neapolitan
一键生成 CRUD View。
即使有 Django Ninja,写 CRUD 还是很累。Neapolitan 是由 Django 核心贡献者开发的库,旨在解决“为了一个简单的增删改查要写 5 个 View”的问题。
- 黑科技点:它提供了一种**“一行代码声明 CRUD”**的模式。只需在 URL 中定义一行,它会自动为你生成列表、详情、创建、编辑和删除的所有视图和基础模板。
- 不同之处:它不是 Admin,它是面向最终用户的、高度可定制的快速原型工具。
Django-Vite
- 背景:现在没人再用传统的 Django Static 引入方式管前端了。
- 惊艳点:
django-vite是目前 Django 接入现代前端工具链(Vite)的标准方案。它支持热更新(HMR),让你在开发时享受秒级的代码刷新体验,部署时自动处理 Hash 指向。
django-watchfiles
- 背景:原生的
runserver自动重载在大型项目(特别是代码量巨大时)中反应很慢。 - 惊艳点:通过 Rust 编写的底层文件监听,让 Django 的重载响应速度提升了数倍。在 2026 年,这是追求极致开发流畅度的开发者必备。
一些我已经在用的
Django Ninja
现代 API 的标准答案,Django 版的 FastAPI
- 核心价值:它是基于 Python 类型注解(Type Hints)和 Pydantic 的 API 框架。
- 为何必学:它原生支持 Async(异步),性能大幅超越 DRF。最酷的是它自带 Swagger UI 自动生成,写 API 就像写普通 Python 函数一样简单。
Wagtail CMS
如果你还在用原生的 django-admin 改内容,或者在纠结于老旧的 CMS,那是时候看一眼 Wagtail 了。
- 核心价值:它不是简单的插件,而是构建在 Django 之上的专业级 CMS 框架。
- 现代点:它提供了极佳的**流式内容(StreamField)**编辑体验和优雅的 UI。2026 年它已成为构建高度可定制、高性能媒体网站的事实标准。
Django Extensions
宝藏功能:
shell_plus:自动导入所有 Model 的交互式 Shell。graph_models:一键生成项目的数据模型关系图(ER 图)。runserver_plus:集成更加强大的调试器。
Django-Action-Triggers
告别臃肿的 Signals,如果你厌倦了 Django Signals 难以调试、追踪困难的缺点,这个库是最佳替代方案。
- 黑科技点:它将“事件触发”从代码层面提升到了配置层面。你可以通过数据库配置或 JSON 定义:当 Model 发生某种变更时,自动触发一个 Webhook、发送一条消息或执行一个 Task。
- 应用场景:非常适合构建需要高度自定义自动化工作流的 SaaS 系统,而不需要反复修改业务逻辑代码。
Viewflow
复杂的业务有限状态机 (FSM),低代码工作流库
当你的 Model 状态流转变得异常复杂(例如:待支付 -> 支付中 -> 支付失败 -> 自动重试 -> 退款...),简单的 choice 字段和 if-else 会让代码崩溃。
- 黑科技点:它采用了声明式编程。你可以定义一个“流程图”,规定哪些状态可以跳转,跳转前需要通过什么校验(Permissions),跳转后执行什么动作(Side Effects)。
- 核心价值:它把复杂的业务逻辑从 Model 内部抽离出来,形成一个清晰的逻辑层。
_EOF_
分享一些2026年有意思的现代化Django生态组件
- 本文作者:
- 程序设计实验室
- 版权声明:
- 本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
相关文章
Django的信号机制入门
概念 django自带一套信号机制来帮助我们在框架的不同位置之间传递信息。也就是说,当某一事件发生时,信号系统可以允许一个或多个发送者(senders)将通知或信号(signals)发送给一组接受者(receivers)。 (感觉就很像Qt的信号与槽机制) 信号系统包含以下三要素: 发送者-信号的发出方 信号-信号本身 接收者-信号的接受者 Django内置了一整套信号,下面是一些比较常用的: 在
2022-08-26 · Django · 约 1 分钟
性能提升4倍!使用Granian作为Django项目的ASGI服务器
Granian是Rust写的ASGI服务器,性能比Daphne强点,但离uWSGI还差着远?静态文件支持倒是省事。开发环境够用,生产环境还是得看情况。
2025-11-22 · Django · 约 1 分钟
告别单调,Django后台主页改造
前言 之前我做了个Django的项目,为了让管理后台更加美观,我对Django(应该说是SimpleUI的)默认的Admin后台主页进行改造,具体可以看这篇文章:项目完成 - 基于Django3.x版本 - 开发部署小结 之前的两篇关于Django3.x开发部署小结的文章介绍的都是数据库、接口、性能方面的,看到有朋友留言对后台主页的改造表示有兴趣,所以就写一篇来介绍一下~ 分析 改造基于我定制的
2022-06-28 · Django · 约 1 分钟
Django+Taro项目实现企业微信登录
前言 还是最近在做的一个小项目,后端用的是Django搭配RestFramework做接口,前端第一次尝试用京东开源的Taro框架来做多端(目前需要做用于企业微信的H5端和微信小程序) 本文记录一下企业微信登录的流程,上周看文档看得头晕晕的,其实很简单,封装好了就几行代码的事~ 两种方式 一种是先拼接好登录要用的地址authorize_url,回调地址设置成h5应用的网页入口,然后把authori
2022-04-08 · Django · 约 1 分钟
讨论
共 0 条加载评论中…