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

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

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

曦远 (DealiAxy)约 9 分钟
目录15 个章节

前言

这几天高强度进行 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 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 分钟

告别单调,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 条

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

加载评论中…