get请求获取多个数据
def get(self, request):
user_gs = models.User.objects.all()
user_set = UserSerializer(instance=user_gs, many=True)
return Response(user_set.data)
views
APIView
post请求添加数据
get请求获取单个数据
def post(self, request):
user_set = UserSerializer(data=request.data)
if user_setis_valid0:user_set.save(return Response(user_set.data)
else:return Response(错误信息)
def get(self, request, pk)
:user = models.User.objects.filter(pk=pk).first(user_set = UserSerializer(instance=user)
return Response(user_set.data)
def put(self, request, pk)
:user = models.User.objects.filter(pk=pk).first(user_set = UserSerializer(instance=user, data=request.data)
if user_set.is_valid():
user_set.save()
return Response(user_set.data)
else:return Response(错误信息)
put请求修改数据
def delete(self, request, pk):delete请求删除数据if res[0] > 0:
return Response(")else:return Response(错误信息)
res = models.User.objects.filter(pk=pk).delete(
响应请求: get请求获取多条数据使用继承搭配:GenericAPIViewListModelMixin 属性定义:queryset、serializer_class方法内部:self.list(request)
响应请求: post请求添加数据使用继承搭配:GenericAPIViewCreateModelMixin 属性定义:queryset、serializer_class方法内部: self.create(request)
响应请求: get请求获取单条数据使用导入继承搭配: GenericAPIViewRetrieveModelMixinmixins属性定义: queryset、serializer_class方法内部: self.retrieve(request,*args,**kwargs)
响应请求: put请求修改数据使用继承搭配:GenericAPIViewUpdateModelMixin 属性定义:queryset、serializer_class方法内部:self.update(request, *args, **kwargs)
响应请求: delete请求删除数据使用继承搭配:GenericAPIViewDestroyModelMixin 属性定义:queryset、serializer_class方法内部: self.destroy(request,*args,**kwargs)
rest_framework
generics
继承views.APIView导GenericAPIView 使用属性定义: queryset、serializer_class方法内部: self.get_queryset0)
self.get_serializer() 继承关系mixins.ListModelMixinGenericAPIView 导入ListAPIView使用响应请求: get请求获取多条数据属性定义: queryset、serializer_class继承关系mixins.CreateModelMixinGenericAPIView>CreateAPIView使用响应请求: post请求添加数据属性定义: queryset、serializer_class
继承关系mixins.ListModelMixinmixins.CreateModelMixin
GenericAPIViewListCreateAPIView 使用响应请求: get请求和post请求属性定义: queryset、serializer_class继承关系mixins.RetrieveModelMixin
GenericAPIViewRetrieveAPIView使用响应请求: get请求单条数据属性定义: queryset、serializer_class
导入
继承关系mixins.UpdateModelMixin,GenericAPIView
导入
使用响应请求: put请求更新数据属性定义: queryset、serializer_class
UpdateAPIView
继承关系mixins.DestroyModelMixinGenericAPIView
导入
DestroyAPIView
使用响应请求: delete请求删除数据属性定义: queryset、serializer_class继承关系mixins.RetrieveModelMixin
mixins.UpdateModelMixinGenericAPIViewRetrieveUpdateAPIView使用响应请求: get请求和put请求属性定义: queryset、serializer_classmixins.RetrieveModelMixin继承关系mixins.DestroyModelMixinGenericAPIViewRetrieveDestroyAPIView
使用响应请求: get请求和delete请求属性定义: queryset、serializer_classmixins.RetrieveModelMixin
继承关系
mixins.DestroyModelMixinGenericAPIView使用响应请求: get请求&delete请求&put请求属性定义: queryset、serializer_classRetrieveUpdateDestroyAPIView
继承关系
mixins.CreateModelMixinmixins.RetrieveModelMixinmixins.UpdateModelMixinmixins.DestroyModelMixinmixins.ListModelMixinGenericViewSet
viewsets
ModelViewSet
响应请求:五个都可以接受使用属性定义: queryset、serializer_class
路由配置:as_view(["get": "list","post":"create"3)
as_view(("get"."retrieve""put"."update","delete":"destroy"))
mixins.RetrieveModelMixin继承关系mixins.ListModelMixin
GenericViewSetReadOnlyModelViewSet 响应请求:两个只读请求使用属性定义: queryset、serializer_class 路由配置:as_view(("get"."list",))
as_view((get"."retrieve",))
继承关系ViewSetMixingenerics.GenericAPIView 响应请求: get请求&delete请求&put请求属性定义: queryset、serializer_class方法内部使用self.get_queryset()self.get_serializer(路由配置:as_view(("key"."values")ps: 方法可以自定制名,注意路由配置
GenericViewSet
ViewSetMixinviews.APIView
继承关系
导入
请求响应:1.按照继承APIView的方法使用2.因继承了ViewSetMixin注意路由写法3.可以自定制方法名,注意路由配置路由配置:as_view((key":"values",))
ViewSet
使用
这是一个魔法使用只要继承了它路由的写法就需要ViewSetMixinas_view(("key"."values")ps: 注意查找顺序,ViewSetMixin写在左边