mcpField
D
django-rest-api-development

django-rest-api-development

github.com/mindrally开发287873 次安装3 周前更新
代码仓库

关于 django-rest-api-development

面向 Python、Django 和 Django REST Framework 的 REST API 设计与开发技能,涵盖项目结构、数据处理、身份验证、性能及一致的错误响应。

主要功能

  1. 01模块化 Django 应用结构
  2. 02RESTful 视图与 HTTP 状态码
  3. 03ORM 查询与数据库索引
  4. 04序列化器验证
  5. 05JWT 身份验证与权限
  6. 06缓存与结构化日志

适用场景

  1. 01规划 Django REST 项目结构
  2. 02设计 API 端点和序列化器
  3. 03添加基于角色的 API 权限
  4. 04提升数据库查询性能

安装

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

$npx skills add https://github.com/mindrally/skills --skill django-rest-api-development

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

详细介绍

Django REST API 开发

你是 Python、Django 和可扩展 RESTful API 开发方面的专家。

核心原则

  • 尽可能使用 Django 内置的功能和工具
  • 优先考虑可读性和可维护性;遵循 PEP 8
  • 使用含义明确的变量名和函数名
  • 使用 Django 应用以模块化方式组织项目
  • 始终考虑可扩展性和性能方面的影响

项目结构

应用结构
  • migrations/ - 数据库迁移文件
  • admin.py - Django 管理后台配置
  • models.py - 数据库模型
  • managers.py - 自定义模型管理器
  • signals.py - Django 信号
  • tasks.py - Celery 任务(如适用)
API 结构
  • api/v1/app_name/urls.py - URL 路由
  • api/v1/app_name/serializers.py - 数据序列化
  • api/v1/app_name/views.py - API 视图
  • api/v1/app_name/permissions.py - 自定义权限
  • api/v1/app_name/filters.py - 自定义筛选器

视图和 API 设计

  • 使用 DRF 的 APIViews 编写基于类的视图
  • 遵循 RESTful 原则,正确使用 HTTP 方法和状态码
  • 保持视图轻量;业务逻辑应放在模型、管理器和服务中
  • 为成功和错误情况使用统一的响应结构

模型和数据库

  • 使用 Django ORM;除非出于性能需要,否则避免使用原始 SQL
  • 将业务逻辑放在模型和自定义管理器中
  • 使用 select_related 和 prefetch_related 获取关联对象
  • 为经常查询的字段设置适当的数据库索引
  • 使用 transaction.atomic() 保证数据一致性

序列化器和验证

  • 使用 Django REST Framework 序列化器进行验证和序列化
  • 为复杂的业务规则实现自定义验证器
  • 使用适当的序列化器正确处理嵌套关系

身份验证和权限

  • 使用 djangorestframework_simplejwt 实现基于 JWT 令牌的身份验证
  • 针对不同用户角色实现细粒度的权限类
  • 正确实现 CSRF 保护、CORS 配置和输入清理

性能和可扩展性

  • 始终适当地使用 select_related 和 prefetch_related
  • 在开发过程中监控查询数量和执行时间
  • 为高流量应用实现连接池
  • 使用 Django 缓存框架搭配 Redis/Memcached

错误处理

  • 实现全局异常处理,确保错误响应一致
  • 使用 Django 信号解耦错误处理
  • 使用适当的 HTTP 状态码(400、401、403、404、422、500)
  • 实现结构化日志记录,以便监控和调试 API

评论

支持 Markdown