Django后端开发专家指导。在创建Django模型、视图、序列化器或API;调试ORM查询或迁移;优化数据库性能;实现身份验证;编写测试;或使用Django REST Framework时使用。遵循Django最佳实践和现代模式。
Django Expert
概述
本技能提供Django后端开发的专家指导,涵盖模型、视图、Django REST Framework、表单、身份验证、测试和性能优化。遵循官方Django最佳实践和现代Python约定,帮助您构建健壮、可维护的应用程序。
关键能力:
- 使用最佳ORM模式进行模型设计
- 视图实现(FBV、CBV、DRF视图集)
- Django REST Framework API开发
- 查询优化和性能调优
- 身份验证和权限管理
- 测试策略和模式
- 安全最佳实践
何时使用
遇到以下触发条件时调用此技能:
模型与数据库工作:
- "为...创建Django模型"
- "优化此查询集/数据库查询"
- "为...生成迁移"
- "为...设计数据库模式"
- "修复N+1查询问题"
视图与API开发:
- "为...创建API端点"
- "构建一个Django视图,用于..."
- "实现DRF序列化器/视图集"
- "为API添加过滤/分页"
身份验证与安全:
- "实现身份验证/权限"
- "创建自定义用户模型"
- "保护此端点/视图"
测试与质量:
- "为此Django应用编写测试"
- "调试此Django错误/问题"
- "审查Django代码中的问题"
性能与优化:
- "此Django视图运行缓慢"
- "优化数据库查询"
- "为...添加缓存"
生产部署:
- "将Django部署到生产环境"
- "为生产环境配置Django"
- "为Django设置HTTPS/SSL"
- "生产设置清单"
- "配置生产数据库/缓存"
操作说明
处理Django开发请求时遵循以下工作流程:
1. 分析请求并收集上下文
确定任务类型:
- 模型设计(数据库模式、关系、迁移)
- 视图/API开发(FBV、CBV、DRF视图集、序列化器)
- 查询优化(N+1问题、数据库性能)
- 身份验证/权限(用户模型、访问控制)
- 测试(单元测试、集成测试、fixture)
- 安全审查(CSRF、XSS、SQL注入、权限)
- 生产部署(设置、HTTPS、数据库、缓存、监控)
- 模板渲染(Django模板、上下文处理器)
利用可用上下文:
- 如果
django-ai-boostMCP服务器可用,使用它了解项目结构和现有模式 - 阅读相关现有代码以了解约定
- 检查Django版本以考虑兼容性
2. 加载相关参考文档
根据任务类型,参考相应的捆绑文档:
-
模型/ORM工作 ->
references/models-and-orm.md- 模型设计模式和字段选择
- 关系配置(ForeignKey、ManyToMany)
- 自定义管理器和QuerySet方法
- 迁移策略
-
视图/API开发 ->
references/views-and-urls.md+references/drf-guidelines.md- FBV与CBV的决策标准
- DRF序列化器、视图集和路由器
- URL配置模式
- 中间件和请求/响应处理
-
性能问题 ->
references/performance-optimization.md- 查询优化技术(select_related、prefetch_related)
- 缓存策略(Redis、Memcached、数据库缓存)
- 数据库索引和查询分析
- 连接池和异步模式
-
生产部署 ->
references/production-deployment.md- 关键设置(DEBUG、SECRET_KEY、ALLOWED_HOSTS)
- HTTPS和SSL/TLS配置
- 数据库和缓存配置
- 静态/媒体文件服务
- 错误监控和日志记录
- 部署流程和健康检查
-
安全问题 ->
references/security-checklist.md- CSRF/XSS/SQL注入防护
- 身份验证和授权模式
- 安全配置实践
- 输入验证和清理
-
测试任务 ->
references/testing-strategies.md- 测试结构和组织
- Fixture和工厂
- 模拟外部依赖
- 覆盖率和CI/CD集成
3. 遵循Django最佳实践实现
代码质量标准:
- 遵循PEP 8和Django编码风格
- 尽可能使用Django内置功能而非第三方包
- 保持视图精简,使用服务/管理器处理业务逻辑
- 使用描述性变量名,为复杂逻辑添加文档字符串
- 使用适当的异常优雅处理错误
Django特定模式:
- 对FK/OneToOne使用
select_related(),对反向FK/M2M使用prefetch_related() - 利用基于类的视图和mixin实现代码复用
- 使用Django表单/序列化器进行验证
- 遵循Django迁移工作流(绝不编辑已应用的迁移)
- 使用Django内置安全功能(CSRF令牌、认证装饰器)
API开发(DRF):
- 对标准CRUD操作使用ModelSerializer
- 实现适当的分页和过滤
- 使用适当的权限类
- 遵循RESTful端点约定
- 在引入破坏性更改时对API进行版本控制
4. 验证和测试
在呈现解决方案之前:
代码审查:
- 检查N+1查询问题(在脑海中模拟Django Debug Toolbar)
- 验证适当的错误处理和边界情况
- 确保遵循安全最佳实践
- 确认迁移干净且可逆
测试考虑:
- 为新功能建议或编写适当的测试
- 验证关键路径的测试覆盖率
- 检查fixture/工厂是否可维护
性能检查:
- 审查数据库查询的效率
- 考虑缓存机会
- 验证数据库索引的正确使用
捆绑资源
references/ - 全面的Django文档,根据需要加载到上下文中
这些参考文件提供了超出本SKILL.md概述的详细指导:
-
references/models-and-orm.md(约11k字)- 模型字段类型和最佳实践
- 关系配置(ForeignKey、OneToOne、ManyToMany)
- 自定义管理器和QuerySet方法
- 迁移模式和常见陷阱
- 数据库级别约束和索引
-
references/views-and-urls.md(约17k字)- 函数式视图与类视图的权衡
- CBV mixin和继承模式
- URL路由和反向解析
- 中间件实现
- 请求/响应生命周期
-
references/drf-guidelines.md(约18k字)- 序列化器模式(ModelSerializer、嵌套序列化器)
- ViewSet和路由器配置
- 分页、过滤和搜索
- 身份验证和权限类
- API版本控制策略
- API性能优化
-
references/testing-strategies.md(约18k字)- 测试组织和结构
- 工厂模式与fixture
- 测试视图、模型和序列化器
- 模拟外部服务
- 测试数据库优化
- CI/CD集成
-
references/security-checklist.md(约12k字)- CSRF保护实现
- XSS防护技术
- SQL注入防御
- 身份验证最佳实践
- 权限和授权模式
- 安全设置配置
-
references/performance-optimization.md(约14k字)- 查询优化(select_related、prefetch_related、only、defer)
- 数据库索引策略
- 缓存层(Redis、Memcached、数据库缓存)
- 数据库连接池
- 分析和监控工具
- 异步视图和后台任务
-
references/production-deployment.md(约20k字)- 关键设置(DEBUG、SECRET_KEY、ALLOWED_HOSTS)
- 数据库配置和连接池
- HTTPS/SSL配置和安全头
- 静态和媒体文件服务
- 使用Redis/Memcached缓存
- 生产环境邮件配置
- 使用Sentry进行错误监控
- 日志记录和健康检查
- 零停机部署策略
-
references/examples.md- 实际实现示例- 带自定义管理器的模型设计
- N+1查询优化
- DRF API端点实现
- 编写Django测试
附加说明
Django版本兼容性:
- 生产环境考虑LTS版本(4.2、5.2)
- 升级时检查弃用警告
- 使用
django-upgrade工具进行自动迁移
需要避免的常见陷阱:
- 循环导入(使用惰性引用)
- 关系上缺少
related_name - 忘记在频繁查询的字段上添加数据库索引
- 使用
get()时未进行异常处理 - 模板和序列化器中的N+1查询






