Django 模式参考
将以下提示词粘贴到你的 AI 对话框中:
请根据 https://skillhub.cn/install/skillhub.md,安装 @user_3c6cb52e/django-patterns-48b8。
技能介绍
要解决的问题
Django 项目在迭代中容易失控:业务逻辑挤进 views.py 或 serializer,列表接口忘记分页,遗漏 select_related / prefetch_related 造成 N+1 查询,signals 被滥用导致执行流程难以追踪,密钥直接写进 settings.py。这些散落的问题在 code review 时很难逐条发现。
技能如何工作
这个技能是一套可执行的约定,而不是新框架:
- 分层:写操作归入
services.py,读操作归入selectors.py,视图保持 thin,只做编排 - 查询优化:通过
django-debug-toolbar或测试中的connection.queries检查 SQL,list 端点统一分页并按需select_related - 序列化与副作用:serializer 用自定义
validate方法校验输入;跨 app 副作用走 signals,同 app 逻辑直接调用 services - 配置与中间件:settings 拆分为 base / local / production 模块,密钥走环境变量;自定义中间件遵循 WSGI callable 模式
配套的 checklist 覆盖了模型约束、序列化校验、视图权限、迁移审查和批量插入/更新,可直接用于 PR review。
适用边界
它的价值在于统一团队约定,不会改变 Django 本身的运行机制,因此对已有存量项目建议渐进式迁移,先从新增代码落实分层。signals 的隐式执行是双刃剑,跨 app 场景收益明显,同 app 内显式调用更利于追踪,清单中的反模式(raw SQL 不加参数化查询等)属于硬性红线,任何项目都应规避。
使用场景
- 重构Django项目时,将业务逻辑从视图迁移到services.py和selectors.py
- 优化列表接口性能,补充分页和select_related避免N+1查询
- 编写Code Review检查清单,确保模型约束和序列化验证覆盖完整
- 统一团队配置管理,拆分settings.py并迁移密钥到环境变量
适合人员
- Django后端工程师,需要在新项目中落地分层架构和查询优化实践
- 技术负责人,正在制定团队的Django开发规范和Code Review标准
- 全栈开发者,负责维护包含多个app的Django项目并处理性能瓶颈
- 开源贡献者,希望遵循社区认可的Django开发模式和反模式清单