关于 django-rest-api-development
面向 Python、Django 和 Django REST Framework 的 REST API 设计与开发技能,涵盖项目结构、数据处理、身份验证、性能及一致的错误响应。
主要功能
- 01模块化 Django 应用结构
- 02RESTful 视图与 HTTP 状态码
- 03ORM 查询与数据库索引
- 04序列化器验证
- 05JWT 身份验证与权限
- 06缓存与结构化日志
适用场景
- 01规划 Django REST 项目结构
- 02设计 API 端点和序列化器
- 03添加基于角色的 API 权限
- 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