• drfViewSet 第二波 进阶版 含更高度封装类ModelViewSet


    https://www.bilibili.com/video/BV1z5411D7BQ?p=19&vd_source=caabcbd2a759a67e2a3de8acbaaf08ea

    view.py

    GenericViewSet 是继承了ViewSet 

    from sers.models import  Book
    from rest_framework import serializers
    from rest_framework.mixins import ListModelMixin,CreateModelMixin,UpdateModelMixin,DestroyModelMixin,RetrieveModelMixin
    from rest_framework.generics import RetrieveDestroyAPIView
    
    from rest_framework.viewsets import GenericViewSet
    
    class BookSerializers(serializers.ModelSerializer):
        class Meta:
            model=Book
            fields = "__all__"
    
    # ListModelMixin中的list方法获取所有数据 ----所以在路由处制定该方法即可
    # CreateModelMixin中的create方法新增一条数据    ----所以在路由处制定该方法即可
    # RetrieveModelMixin中retrieve方法,为根据id查看单条    ----所以在路由处制定该方法即可
    # UpdateModelMixin中update方法,为根据id更新某条   ----所以在路由处制定该方法即可
    # DestroyModelMixin中destroy方法,为根据id删除某条   ----所以在路由处制定该方法即可
    class BookView(GenericViewSet,ListModelMixin,CreateModelMixin,RetrieveModelMixin,UpdateModelMixin,DestroyModelMixin):
        # 获取所有书籍---操作数据库
        queryset = Book.objects.all()
        # 序列化模型(序列化器)
        serializer_class = BookSerializers

    url.py

    urlpatterns = [
        path('admin/', admin.site.urls),
    
        # 新
        url('^book/$', views.BookView.as_view({"get":"list","post":"create"})),
        # 新
        # 加有名分组?P<pk>
        url('^book/(?P<pk>\d+)/$', views.BookView.as_view({"get":"retrieve","put":"update","delete":"destroy"})),
    ]

    -----------ModelViewSet

    实际就是 ModelViewSet 是继承了GenericViewSet,ListModelMixin,CreateModelMixin,RetrieveModelMixin,UpdateModelMixin,DestroyModelMixin6个方法 ,不用写那么多类集成,写一个ModelViewSet就够了

    # ListModelMixin中的list方法获取所有数据 ----所以在路由处制定该方法即可
    # CreateModelMixin中的create方法新增一条数据    ----所以在路由处制定该方法即可
    # RetrieveModelMixin中retrieve方法,为根据id查看单条    ----所以在路由处制定该方法即可
    # UpdateModelMixin中update方法,为根据id更新某条   ----所以在路由处制定该方法即可
    # DestroyModelMixin中destroy方法,为根据id删除某条   ----所以在路由处制定该方法即可v
    # ModelViewSet 是继承了GenericViewSet,ListModelMixin,CreateModelMixin,RetrieveModelMixin,UpdateModelMixin,DestroyModelMixin6个方法
    from rest_framework.viewsets import ModelViewSet
    
    class BookSerializers(serializers.ModelSerializer):
        class Meta:
            model=Book
            fields = "__all__"
    
    class BookView(ModelViewSet):
        # 获取所有书籍---操作数据库
        queryset = Book.objects.all()
        # 序列化模型(序列化器)
        serializer_class = BookSerializers
  • 相关阅读:
    OP_REQUIRES failed at conv_ops.cc:386 : Resource exhausted: OOM when allocating tensor with shape..
    Python中*args和**kwargs的区别
    命令行运行Python脚本时传入参数的三种方式
    关于 initWithNibName 和 loadNibNamed 的区别和联系-iPhone成长之路
    NSBundle介绍
    UIView总结
    iPhone How-to:如何调整UIView的Z-Order
    有关View的几个基础知识点-IOS开发
    NSNumber与NSInteger的区别
    iOS第三方开源库的吐槽和备忘
  • 原文地址:https://www.cnblogs.com/kaibindirver/p/16828992.html
Copyright © 2020-2023  润新知