Django 模式集
将以下提示词粘贴到你的 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 接口的独立开发者,诉求是避免常见反模式并保障数据校验安全。