Django-rest-frame
主要作用一:序列化
序列化模型1:
HyperlinkedModelSerializer
序列化模型2:
Serializer
序列化模型3:
ModelSerializers
把数据库返回的记录进行序列化
主要作用二:Views视图使用简化
基础View:
APIView: 封装和重构request,response
Mixins
CreateModelMixin -> 增
ListModelMixin -> 查一个集合(queryset)
RetrieveModelMixin -> 查单个
UpdateModelMixin -> 改
DestroyModelMixin -> 删
APIView子类
GenericAPIView: 在APIVIew基础上,成为Mixins的工具箱般的存在
组合类
UpdateAPIView -> UpdateModelMixin + GenericAPIView
ListCreateAPIView -> ListModelMixin + CreateModelMixin + GenericAPIView
快速开发,对request的method进行控制
简略版执行流程
APIView提供了8大验证:authentication_classes(登陆验证),throttle_classes(节流控制),permission_classes(权限控制)等
- APIView的as_view
对queryset做个判断是否为空,跳转到View.as_view - View.as_view
各种对参数进行判断,跳转到self.dispatch - self.dispatch
self是重点,dispatch在APIView中被重写,先执行initialize_request,然后initial,然后执行方法(get,post…),最后是response简单处理 - initialize_request
对request进行初始化,添加属性 - initial
执行验证:perform_authentication, check_permissions, check_throttles - 执行方法
handler = getattr(self, request.method.lower(),self.http_method_not_allowed)
response = handler(request, *args, **kwargs)