Agent Skills
返回列表
💻

Django 模式集

开发编程 更新于 2026.08.30

将以下提示词粘贴到你的 AI 对话框中:

请根据 https://skillhub.cn/install/skillhub.md,安装 @user_3c6cb52e/django-patterns-sh-h750cn。

技能介绍

要解决的具体问题

  • 随着 Django 项目规模增长,代码容易散落在 views.py、serializers.py 或模型中,导致职责不清、重复逻辑多、修改成本高。
  • ORM 查询存在隐式 N+1、未分页列表接口、批量写入性能差等问题,排查时缺少统一入口。
  • 跨应用副作用依赖信号或直接调用,流程难以追踪,容易过度耦合。
  • 配置与密钥管理不规范,敏感信息可能被硬编码在 settings.py 中。

技能如何工作

  • 通过模块化拆分组织 Django 项目:业务写操作集中在 services.py,读操作集中在 selectors.py,视图保持轻薄。
  • 使用 django-debug-toolbar 或 connection.queries 在测试中检查查询,避免 N+1 和全表扫描。
  • 在 DRF 序列化器中使用自定义 validate 方法进行输入校验,而不是把逻辑堆在视图层。
  • 跨应用副作用优先使用信号;同一应用内部直接调用服务,保证调用链清晰。
  • 自定义中间件遵循 WSGI callable 模式,便于在请求处理链中统一注入逻辑。
  • 提供检查清单,覆盖业务逻辑位置、关联查询、分页、配置拆分、迁移审核、批量操作、测试覆盖等关键项。

适用边界与注意点

  • 该技能不是可自动替换代码的脚手架,而是一套需要团队共同遵守的工程约定。
  • 信号只能用于跨应用副作用;同应用逻辑直接调用服务,避免流程难以追踪。
  • 原始 SQL 必须使用参数化查询,密钥应通过环境变量管理,不要写进 settings.py。
  • 检查清单应作为代码审查和测试的参考,不能替代自动化测试与持续集成。

使用场景

  • 在迭代大型 Django 项目时,将散落在视图和序列化器中的业务逻辑抽离到服务层与查询层。
  • 排查列表接口响应缓慢问题时,使用调试工具检查查询,为列表查询添加分页与预加载。
  • 团队协作开发时,将密钥剥离出配置文件,并依据清单规范中间件结构与迁移审核流程。

适合人员

  • 正在重构臃肿 Django 项目的中高级后端工程师,诉求是建立清晰的分层架构。
  • 需要统一团队编码规范的技术负责人,诉求是减少业务逻辑耦合与 N+1 查询。
  • 负责构建 DRF 接口的独立开发者,诉求是避免常见反模式并保障数据校验安全。