DA
DealiAxy
2026年01月21日

分享一些2026年有意思的现代化Django生态组件

2026年了,若还在忍受石器时代的模板和冗余CRUD,趁早转行。Cotton和Inertia总算给Django这老古董续了命,Ninja这类工具已是开发及格线。看一眼这些现代化组件吧,别再用那些自我感动的低效代码来折磨审美了。

未分类
3452
12 分钟阅读
更新于 01-21

前言

这几天高强度进行 DjangoStarter 项目开发,过程也发现一些问题,比如 UI 风格不一致、架构、测试问题等。

在 GitHub 逛了一圈,我发现了一些 Django 生态的新玩意。

本文简单分享一下。

新玩意

django-cotton

Bringing component-based design to django templates

https://django-cotton.com/

彻底改变模板写法

Django 原生 Template 系统的“补完计划”。

以往 Django 模板通过 {% include %}{% block %} 实现复用,语法笨重且难以传递复杂数据。

  • 核心价值:引入类似 Vue/React 的 <c-component> 标签语法。
  • 现代点:支持属性传递、插槽(Slots)以及组件作用域,让传统的 .html 模板具备了组件化框架的开发手感。

copier

A library and CLI app for rendering project templates.

https://copier.readthedocs.io/en/stable/

更好的项目脚手架

虽然它不是 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.

https://inertiajs.com/

https://github.com/inertiajs/inertia-django

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.

https://shadcn-django.com/

受前端界 shadcn/ui 启发,它为 Django 开发者带来了“可以直接复制源码”的组件化体验。

核心价值:结合了 Tailwind CSSAlpine.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 内部抽离出来,形成一个清晰的逻辑层。