响用模块

响用模块

一、响用模块使用

在视图类中导入from rest_framework.response import Response模块,返回响应结果

class BookAPIView(APIView):
    # 渲染模块局部配置
    # 局部配置禁用就是配置空list[]
    # renderer_classes = [JSONRenderer]

    # 解析模块的局部配置
    parser_classes = [JSONParser]

    def get(self, request, *args, **kwargs):
        print(request._request.GET)
        print(request.GET)
        print(request.POST)
        print(request.META)
        print(request.META.get("HTTP_AUTH"))
        print(request.query_params)

        return Response({'status': 0})

二、二次封装Response

class APIResponse(Response):
    # 格式化data
    def __init__(self, status=0, msg='ok', results=None, http_status=None, headers=None, exception=False, **kwargs):
        data = {  # json的response基础有数据状态码和数据状态信息
            'status': status,
            'msg': msg
        }
        if results is not None:  # 后台有数据,响应数据
            data['results'] = results
        data.update(**kwargs)  # 后台的一切自定义响应数据直接放到响应数据data中
        super().__init__(data=data, status=http_status, headers=headers, exception=exception)

Response类生成对象需要的参数,以及Response类的对象可以使用的属性

  1. 参数:Response(data=响应的数据, status=响应的网络状态码, headers=想通过响应头再携带部分信息给前端)
  2. 属性:response.data response.status_code response.status_text
  3. 源码:Response类的__init__方法
  4. 核心:知道response对象产生可以传那些信息,response对象又是如何访问这些信息的
原文地址:https://www.cnblogs.com/randysun/p/12291613.html