mcpField
D
django-expert

django-expert

github.com/vintasoftware开发1665.8k 次安装14 周前更新
代码仓库

关于 django-expert

面向 Django 后端开发者的开发技能,涵盖模型、API、安全、测试、性能和生产部署,并提供按任务分类的参考资料与实现检查。

主要功能

  1. 01模型与 ORM 设计指导
  2. 02视图和 DRF API 模式
  3. 03身份验证与安全实践
  4. 04测试和质量策略
  5. 05查询性能优化
  6. 06生产部署指导

适用场景

  1. 01设计模型和迁移
  2. 02构建带权限控制的 DRF 端点
  3. 03诊断慢查询和 N+1 问题
  4. 04审查安全措施与生产配置

MCP 相关

若可用 `django-ai-boost` MCP 服务,技能建议借助它了解项目结构和现有模式。

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/vintasoftware/django-ai-plugins --skill django-expert

安装后在 Claude Code 中输入/django-expert确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

references/
drf-guidelines.md
examples.md
models-and-orm.md
performance-optimization.md
production-deployment.md
README.md
security-checklist.md
testing-strategies.md
views-and-urls.md

详细介绍

Django 专家

概述

此技能为 Django 后端开发提供专业指导,全面涵盖模型、视图、Django REST Framework、表单、身份验证、测试和性能优化。它遵循 Django 官方最佳实践和现代 Python 规范,帮助你构建健壮、易于维护的应用程序。

核心能力:

  • 使用优化的 ORM 模式设计模型
  • 实现视图(FBV、CBV、DRF 视图集)
  • 开发 Django REST Framework API
  • 优化查询和调整性能
  • 身份验证与权限
  • 测试策略和模式
  • 安全最佳实践

适用场景

遇到以下情况时,调用此技能:

模型与数据库工作:

  • “创建一个用于……的 Django 模型”
  • “优化这个 queryset/数据库查询”
  • “为……生成迁移”
  • “为……设计数据库架构”
  • “修复 N+1 查询问题”

视图与 API 开发:

  • “为……创建 API 端点”
  • “构建一个……的 Django 视图”
  • “实现 DRF 序列化器/视图集”
  • “为 API 添加筛选/分页”

身份验证与安全:

  • “实现身份验证/权限”
  • “创建自定义用户模型”
  • “保护此端点/视图”

测试与质量:

  • “为这个 Django 应用编写测试”
  • “调试这个 Django 错误/问题”
  • “检查 Django 代码中的问题”

性能与优化:

  • “这个 Django 视图运行很慢”
  • “优化数据库查询”
  • “为……添加缓存”

生产环境部署:

  • “将 Django 部署到生产环境”
  • “为生产环境配置 Django”
  • “为 Django 设置 HTTPS/SSL”
  • “生产环境设置检查清单”
  • “配置生产环境数据库/缓存”

说明

处理 Django 开发请求时,遵循以下工作流:

1. 分析请求并收集上下文

识别任务类型:

  • 模型设计(数据库架构、关系、迁移)
  • 视图/API 开发(FBV、CBV、DRF 视图集、序列化器)
  • 查询优化(N+1 问题、数据库性能)
  • 身份验证/权限(用户模型、访问控制)
  • 测试(单元测试、集成测试、测试固件)
  • 安全审查(CSRF、XSS、SQL 注入、权限)
  • 生产环境部署(设置、HTTPS、数据库、缓存、监控)
  • 模板渲染(Django 模板、上下文处理器)

利用可用上下文:

  • 如果有 django-ai-boost MCP 服务可用,请使用它了解项目结构和现有模式
  • 阅读相关的现有代码,了解约定
  • 检查 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

    • 测试结构和组织
    • Fixtures 和工厂
    • 模拟外部依赖
    • 覆盖率和 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)
  • 验证错误处理和边界情况是否妥当
  • 确保遵循安全最佳实践
  • 确认迁移干净且可回滚

测试注意事项:

  • 为新功能建议或编写适当的测试
  • 验证关键路径的测试覆盖情况
  • 检查 Fixtures/工厂是否便于维护

性能检查:

  • 检查数据库查询是否高效
  • 考虑缓存机会
  • 验证数据库索引的使用是否恰当

捆绑资源

references/ - 根据需要加载到上下文中的 Django 完整文档

这些参考文件提供了本 SKILL.md 概览之外的详细指南:

  • references/models-and-orm.md(约 1.1 万字)

    • 模型字段类型和最佳实践
    • 关系配置(ForeignKey、OneToOne、ManyToMany)
    • 自定义管理器和 QuerySet 方法
    • 迁移模式和常见陷阱
    • 数据库级约束和索引
  • references/views-and-urls.md(约 1.7 万字)

    • 基于函数的视图与基于类的视图之间的权衡
    • CBV 混入类和继承模式
    • URL 路由和反向解析
    • 中间件实现
    • 请求/响应生命周期
  • references/drf-guidelines.md(约 1.8 万字)

    • 序列化器模式(ModelSerializer、嵌套序列化器)
    • ViewSet 和路由器配置
    • 分页、筛选和搜索
    • 身份验证和权限类
    • API 版本控制策略
    • API 性能优化
  • references/testing-strategies.md(约 1.8 万字)

    • 测试组织和结构
    • 工厂模式与固定数据
    • 测试视图、模型和序列化器
    • 模拟外部服务
    • 测试数据库优化
    • CI/CD 集成
  • references/security-checklist.md(约 1.2 万字)

    • CSRF 保护实现
    • XSS 预防技术
    • SQL 注入防御
    • 身份验证最佳实践
    • 权限和授权模式
    • 安全设置配置
  • references/performance-optimization.md(约 1.4 万字)

    • 查询优化(select_related、prefetch_related、only、defer)
    • 数据库索引策略
    • 缓存层(Redis、Memcached、数据库缓存)
    • 数据库连接池
    • 性能分析和监控工具
    • 异步视图和后台任务
  • references/production-deployment.md(约 2 万字)

    • 关键设置(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 查询

评论

支持 Markdown