响用模块
一、响用模块使用
在视图类中导入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类的对象可以使用的属性
- 参数:Response(data=响应的数据, status=响应的网络状态码, headers=想通过响应头再携带部分信息给前端)
- 属性:response.data response.status_code response.status_text
- 源码:Response类的__init__方法
- 核心:知道response对象产生可以传那些信息,response对象又是如何访问这些信息的