前言
这几天高强度进行 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 内部抽离出来,形成一个清晰的逻辑层。