1、
视图类继承APIView后多了 -0 去除了csrf认证 -1 新的request -request.data -request.query_params -request.其他跟之前一样 -request._request 是老的 -2 三大认证 -3 全局异常
from rest_framework.views import APIView from rest_framework.response import Response from rest_framework.parsers import JSONParser, FormParser, MultiPartParser from rest_framework.renderers import JSONRenderer, BrowsableAPIRenderer # JSONParser:解析json格式 # FormParser:urlencoded # MultiPartParser:form-data
局部限制
写一个类属性 parser_classes = [JSONParser或者FormParser、MultiPartParser]
class BookView(APIView): # 类属性 parser_classes = [JSONParser] def get(self, request): res = Response(data={123}, status=500, headers={'xxx': 'yyy'}) print(res.data) return res def post(self, request): print(self.parser_classes) print(request.data) return Response('新增')
效果:
全局限制
REST_FRAMEWORK = { #####请求体的限制 'DEFAULT_PARSER_CLASSES': [ 'rest_framework.parsers.JSONParser', 'rest_framework.parsers.FormParser', # 'rest_framework.parsers.MultiPartParser' ], #####响应格式的限制 'DEFAULT_RENDERER_CLASSES': [ 'rest_framework.renderers.JSONRenderer', 'rest_framework.renderers.BrowsableAPIRenderer', ], }
补充:
全局使用后,局部再限制---》只需要在视图类上加即可
全局如果用了,局部这样配,优先用局部的,也就是这个类管理的接口,只能接收form-data格式 parser_classes = [MultiPartParser]
二、