【DRF】 Request 和 Response(更新中~)

DRF 的 Request 和 Response

DRF 对 Django 原生的 Request 和 Response作了一层封装,给咱们的使用带来了更大的便利前端

Request

request.data

返回请求正文的已解析内容,GET和POST都同样bash

  • 它包括全部已解析的内容,包括文件和非文件输入。
  • 它支持解析除HTTP方法以外的其余内容POST,这意味着您能够访问内容PUT和PATCH请求。
  • 它支持REST框架的灵活请求解析,而不单单支持表单数据。例如,您能够像处理传入表单数据同样处理传入的JSON数据

request.query_params

里面放有请求头传递过来的参数
不止是GET的请求头,POST PUT DELETE的请求头都会在这里面
建议使用request.query_params而不是Django的标准request.GET框架

request.parsers

内容解析的 parser
一般不须要访问此属性ui

request.user

获取当前的用户spa

requset.auth

一般不须要访问此属性code

Responses

支持各类类型的返回get

  • data: 返回的数据
  • status: 状态码,默认是200
  • template_name: 返回 template
  • headers: http headers
  • content_type: http content_type

应用

结合 DRF 的 filter 过滤数据string

class GoodsListView(mixins.ListModelMixin, viewsets.GenericViewSet):

    # queryset = Goods.objects.all() 写了 get_queryset(self): 就能够不用写这个配置
    serializer_class = GoodsSerializer
    pagination_class = GoodsPagination  # 调用自定义的分页

    def get_queryset(self):
        queryset = Goods.objects.all()  # 默认返回所有数据
        price_min = self.requset.query_params.get("price_min", 0)  # 获取前端请求头中的参数,后一个参数是默认值
        if price_min:
            queryset = queryset.filter(shop_price__gt=int(price_min))
        return queryset

复制代码
相关文章
相关标签/搜索