基于DRF的增删改查操作
发布日期:2021-05-14 15:19:48 浏览次数:18 分类:精选文章

本文共 1487 字,大约阅读时间需要 4 分钟。

基于DRF的增删改查操作

一 APIView 示例

from django.urls import path
from .views import PersontView
app_name = 'classview'
urlpatterns = [
# 列表:GET /person/
path('person/', PersontView.as_view()),
# 新增:POST /person/
# 详情:GET /person/[pk]/
# 修改:PUT /person/[pk]/
# 删除:DELETE /person/[pk]/
path('person/
/', PersontView.as_view()),
]

2. QuerySet 使用方法

DRF 提供了丰富的 QuerySet 方法,可用于数据操作。这些方法可以简化数据库操作,提高开发效率常见用法如下:

  • filter : 根据条件筛选出符合条件的数据
  • exclude : 排除不符合条件的记录
  • annotate : 对查询结果进行聚合和计算
  • order_by : 按指定字段排序
  • values : 提取字段值,适合构建基础数据汇总报表
  • values_list : 提取指定字段的值列表
  • all : 获取所有记录
  • select_related : 通过关联字段查询多个表
  • prefetch_related : 预载数据,减少查询次数
  • defer : 延迟加载字段,节省内存
  • only : selecting 某些字段
  • get : 获取单个或多个记录
  • create : 执行批量新增操作
  • get_or_create : 根据条件获取或新增记录
  • bulk_create : 批量创建多个记录
  • count : 统计记录总数
  • exists : 检查某个字段是否存在
  • distinct : 去除重复记录
  • update : 执行批量更新操作
  • delete : 执行删除操作

3. DRF 中的 Request 和 Response 对象

DRF 提供的 Request 和 Response 对象与 Django 的 Httprequest/response 有显著区别,主要优势在于:

Request 对象

DRF 的 Request 对象是基于 Django 的 HttpRequest 类拓展而成,扩展了多个核心属性:

  • request.data : 比 request.POST 更为灵活,可处理任意 HTTP 方法上传的数据
  • request.query_params : 直观接收查询参数
  • requestetti : 拓展了更多的数据获取方式,使开发更加便捷

Response 对象

DRF 的 Response 对象超越了传统的 Httpresponse,为 API 开发提供了更多可能性:

  • 它能根据返回数据类型自动决定响应格式
  • 支持浏览器访问时的路由信息监听
  • 提供了专门的 JsonResponse 类,简化跨平台数据返回流程

4. 状态码

一个成功的 API 调用通常包含以下常见状态码:

  • 200 - OK:表示请求成功
  • 400 - Bad Request:请求参数格式错误或数据验证失败
  • 401 - Unauthorized:用户未授权
  • 404 - Not Found:资源不存在
  • 409 - Conflict:请求结果与数据库状态发生冲突
  • 500 - Internal Server Error:服务器内部错误
上一篇:vue前端传参和DRF后端接受参数
下一篇:使用django进行数据库模拟数据生成

发表评论

最新留言

网站不错 人气很旺了 加油
[***.192.178.218]2025年05月02日 17时15分58秒