zoukankan      html  css  js  c++  java
  • 0021 DRF框架开发(08 子类视图)

      GenericAPIView基类视图比APIView基类视图更简单。但还可以更简单,GenericAPIView视图中,要继承多个mixins,而且,还要写多个方法,能不能有一种办法,直接继承一个类,而且,不需要再在类中写多个方法呢?DRF早就为我们考虑到了!

      DRF提供了8个子类视图,用于针对单一功能提供视图。

      打开Applications/Examples/views/Schools.py,先导入八个包文件:

    from rest_framework.generics import GenericAPIView, CreateAPIView, ListAPIView, RetrieveAPIView, DestroyAPIView, 
        UpdateAPIView, RetrieveUpdateAPIView, RetrieveDestroyAPIView, RetrieveUpdateDestroyAPIView

    1 CreateAPIView

      提供POST,用于新增一条记录。

    class SchoolCreateAPIView(CreateAPIView):
        """
        【功能描述】:用于新增一条记录
        """
        serializer_class = SchoolsSerializer

    2 ListAPIView

      提供GET方法,用于查询多条记录

    class SchoolListAPIView(ListAPIView):
        """
        【功能描述】用于查询所有记录
        """
        queryset = Schools.objects.all()
        serializer_class = SchoolsSerializer

    3 RetrieveAPIView

      提供GET方法,用于查询一条记录

    class SchoolRetrieveAPIView(RetrieveAPIView):
        """
        【功能描述】用于查询一条记录
        """
        queryset = Schools.objects.all()
        serializer_class = SchoolsSerializer

    4 DestroyAPIView

      提供DELETE方法,用于删除一条记录

    class SchoolDestroyAPIView(DestroyAPIView):
        """
        【功能描述】用于删除一条记录
        """
        queryset = Schools.objects.all()
        serializer_class = SchoolsSerializer

    5 UpdateAPIView

      提供PUT和PATCH方法,用于更新一条记录。

      DRF自动生成两个相应的接口,并根据前端提交方式,调用相应的接口。

    class SchoolUpdateAPIView(UpdateAPIView):
        """
        【功能描述】用于更新一条记录
        """
        queryset = Schools.objects.all()
        serializer_class = SchoolsSerializer

    6 RetrieveUpdateAPIView

      提供GET、PUT、PATCH方法,用于查询一条记录或者更新一条记录,其中GET用于查询一条记录,PUT和PATCH用于更新一条记录。

      DRF自动生成三个相应的接口,并根据前端提交方式,调用相应的接口。

    class SchoolRetrieveUpdateAPIView(RetrieveUpdateAPIView):
        """
        【功能描述】用于查询、更新一条记录
        """
        queryset = Schools.objects.all()
        serializer_class = SchoolsSerializer

    7 RetrieveDestroyAPIView

      提供GET、DELETE方法,用于查询、删除一条记录。

      DRF自动生成三个相应的接口,并根据前端提交方式,调用相应的接口。

    class SchoolRetrieveDestroyAPIView(RetrieveDestroyAPIView):
        """
        【功能描述】用于查询、删除一条记录
        """
        queryset = Schools.objects.all()
        serializer_class = SchoolsSerializer

    8 RetrieveUpdateDestroyAPIView

      提供GET、PUT、PATCH、DELETE用于查询、更新、删除一条记录。

      DRF自动生成四个相应的接口,并根据前端提交方式,调用相应的接口。

    class SchoolRetrieveUpdateDestroyAPIView(RetrieveUpdateDestroyAPIView):
        """
        【功能描述】用于查询、更新或删除一条记录
        """
        queryset = Schools.objects.all()
        serializer_class = SchoolsSerializer
    

    9 配置url

      导入上面八个子类视图,并配置相应的url

    path('SchoolCreate/', SchoolCreateAPIView.as_view()),
    path('SchoolListAPI/', SchoolListAPIView.as_view()),
    path('SchoolRetrieve/<int:pk>/', SchoolRetrieveAPIView.as_view()),
    path('SchoolDestroy/<int:pk>/', SchoolDestroyAPIView.as_view()),
    path('SchoolUpdateAPI/<int:pk>/', SchoolUpdateAPIView.as_view()),
    path('SchoolRetrieveUpdate/<int:pk>/', SchoolRetrieveUpdateAPIView.as_view()),
    path('SchoolRetrieveDestroy/<int:pk>/', SchoolRetrieveDestroyAPIView.as_view()),
    path('SchoolRetrieveUpdateDestroy/<int:pk>/', SchoolRetrieveUpdateDestroyAPIView.as_view()),
    

    10 运行,测试所有接口。

  • 相关阅读:
    mysql5.7.17安装配置图文教程
    Idea破解
    git pull总是要输入账号和密码
    java 查看线程死锁
    SpringBoot:四种读取properties文件的方式
    Springboot的常规属性配置和类型安全配置
    java web应用连接mysql会突然connection连接失败
    设计模式--单例模式(二)登记式
    设计模式--单例模式(一)懒汉式和饿汉式
    Springboot的2种启动方式
  • 原文地址:https://www.cnblogs.com/dorian/p/12377907.html
Copyright © 2011-2022 走看看