猿创征文 | DjangoRESTframework(八)-9个视图子类的详细使用

DjangoRESTframework(七)-五个扩展类的使用(Create、ListModel,Retrieve,Update,Destroy)

一、CreateAPIView

rest_framework.generics.CreateAPIView

作用:创建一个新的模型对象

继承自: GenericAPIView、CreateModelMixin

CreateModelMixin的原有基础上提供了post方法,内部调用了CreateModelMixin的create方法,使得代码更加精简

1、源代码

class CreateAPIView(mixins.CreateModelMixin,
                    GenericAPIView):
    """
    Concrete view for creating a model instance.
    """
    def post(self, request, *args, **kwargs):
        return self.create(request, *args, **kwargs)

2、对比使用

继承 GenericAPIView、CreateModelMixin

class CreateApiView(GenericAPIView, CreateModelMixin):
    serializer_class = BookSerializer
    queryset = BookInfo.objects

    def post(self, request):
        return self.create(request)

继承CreateAPIView

class _CreateApiView(CreateAPIView):
    serializer_class = BookSerializer
    queryset = BookInfo.objects

二、ListAPIView

rest_framework.generics.ListAPIView

作用:获取所有模型对象的数据

继承自:GenericAPIView、ListModelMixin

在ListModelMixin的继承上提供了get方法,内部调用了ListModelMixinlist方法

1、源代码

class ListAPIView(mixins.ListModelMixin,
                  GenericAPIView):
    """
    Concrete view for listing a queryset.
    """
    def get(self, request, *args, **kwargs):
        return self.list(request, *args, **kwargs)

2、对比使用

继承GenericAPIView、ListModelMixin

class ListApiView(GenericAPIView, ListModelMixin):
    serializer_class = BookSerializer
    queryset = BookInfo.objects

    def get(self, request):
        return self.list(request)

继承ListAPIView

class _ListApiView(ListApiView):
    serializer_class = BookSerializer
    queryset = BookInfo.objects

三、RetrieveAPIView

rest_framework.generics.RetrieveAPIView

作用:获取单一模型对象数据

继承自: GenericAPIView、RetrieveModelMixin

RetrieveModelMixin的基础上提供了get方法,内部调用了RetrieveModelMixinretrieve方法

1、源代码


                
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值