# Request 类的对象---》新的request对象 from rest_framework.request import Request # 记住的 __getattr__ request.data request.query_parmas--->self._request.GET-->restful规范里,请求地址中带过滤(查询)条件---》get请求地址中提交的数据在GET中,---》query_parmas:查询参数 # 了解--->默认情况下,可以解析 urlencoded,formdata,json -如果我们写了一个接口,想只能处理json格式,或者只能处理formdata # 局部配置 from rest_framework.parsers import JSONParser,FormParser,MultiPartParser class PublishView(APIView): # 局部使用,只针对当前视图类有效,只想处理json格式 parser_classes = [JSONParser] # 全局配置---》配置文件--->所有接口都只能解析json格式 REST_FRAMEWORK = { 'DEFAULT_PARSER_CLASSES': [ 'rest_framework.parsers.JSONParser', ], } # 全局配置解析json,局部某个视图函数想能解析formdata格式 视图类中配置一下即可---》局部配置 -如果局部配置如下,会怎么样 parser_classes = [] # 所有格式都补不能解析了 # 使用顺序:我们没有配置,也有默认配置:3个都能解析 drf有默认配置(最后)----》项目配置文件的配置(其次)----》视图类中配的(优先用) drf的默认配置:from rest_framework import settings # 总结:一般情况下,都使用默认即可,不用配置
Respone:from rest_framework.response import Response # 属性 data=None, # 字符串,字典,列表--》给http响应body体中内容-->response对象中取出处理 status=None, # 响应状态码:1xx,2xx,3xx,默认是200 from rest_framework.status import HTTP_201_CREATED Response(ser.data,status=HTTP_201_CREATED) headers=None, # 响应头 字典 ---了解--- template_name=None, # 模板名字(不用),用浏览器访问时,可以改 exception=False, # 异常处理 content_type=None # 响应编码格式 # 响应格式---》跟解析格式 # 局部设置 from rest_framework.renderers import JSONRenderer,BrowsableAPIRenderer class BookDetailView(APIView): renderer_classes = [JSONRenderer,] # 全局设置 REST_FRAMEWORK = { 'DEFAULT_RENDERER_CLASSES': ( # 默认响应渲染类 'rest_framework.renderers.JSONRenderer', # json渲染器 'rest_framework.renderers.BrowsableAPIRenderer', # 浏览API渲染器 ) }
# APIView from rest_framework.views import APIView -类属性 -renderer_classes,parser_classes。。。 -get方法,post方法,delete方法写法跟之前的View一样,只不过request对象变成了新的request丢下 -比之前的View多了三大认证和全局异常处理 # GenericAPIView 继承了APIView ,多了属性和方法 from rest_framework.generics import GenericAPIView -属性(先记两个) -queryset = None -serializer_class = None -方法 -get_queryset -get_object -get_serializer # 5个视图扩展类(不是视图类,没有集成APIView,需要配合GenericAPIView) from rest_framework.mixins CreateModelMixin, ListModelMixin, DestroyModelMixin, RetrieveModelMixin, UpdateModelMixin # 9个视图子类 from rest_framework.generics CreateAPIView, ListAPIView, DestroyAPIView, RetrieveAPIView, UpdateAPIView ListCreateAPIView, RetrieveUpdateAPIView, RetrieveUpdateDestroyAPIView, RetrieveDestroyAPIView # 视图集 from rest_framework.viewsets # 两个视图类 ModelViewSet,ReadOnlyModelViewSet # 视图类 ViewSet,GenericViewSet, # 魔法类 ViewSetMixin