DRF视图

视图基类

1.1 APIView

from rest_framework.views import APIView

1.2 GenericAPIView[通用视图类]

from rest_framework.generics import GenericAPIView继承自APIView,主要增加了操作序列化器和数据库操作的方法,作用为下面的Mixin拓展类的执行提供方法和支持,可以搭配一个或多个Mixin拓展类。

class ProductsGenericeView(GenericAPIView):
    queryset = Products.objects.all()  # 当前视图类中操作的公共数据,先从数据库中查询出来
    serializer_class = ProductsSerializer

    def get(self, request):
        """获取所有的数据"""
        products_list = self.get_queryset()
        serializer = self.get_serializer(instance=products_list, many=True)
        return Response(serializer.data)

    def put(self, request, pk):
        instance = self.get_object()
        # 客户端提交的数据
        data = request.data
        # 实例化序列化器
        serializer = self.get_serializer(instance=instance, data=data)
        # 验证数据
        serializer.is_vaild(raise_exception=True)
        # 反序列化数据
        serializer.save()
        return Response(serializer.data)
1.2.1 GenericAPIView结合Mixin拓展类
  • ListModelMixin:实现查询所有数据功能
  • CreateModelMixin: 实现添加数据的功能
  • RetrieveModelMixin: 实现查询一条数据功能
  • UpdateModelMixin: 更新一条数据功能
  • DestroyModelMixin: 删除一条数据功能
1.2.2 DRF下,内置了一些同时继承来了GenericAPIView和Mixin拓展类的视图子类,可以直接继承子类就可以生成对应的API接口
  • ListAPIView: 获取所有数据
  • CreateAPIView: 添加数据
  • RetrieveAPIView: 获取一条数据
  • DestorAPIView: 删除一条数据
  • UpdateAPIView: 更新一条数据
  • RetrieveUpdateDestoryAPIView: RetrieveAPIView、UpdateAPIView、DestorAPIView的缩写
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值