首页 > 其他分享 >基于视图子类实现接口

基于视图子类实现接口

时间:2022-10-24 17:36:40浏览次数:46  
标签:GenericAPIView views 子类 接口 视图 path view

基于视图子类实现接口

11.1 视图子类介绍

(1) CreateAPIView

提供 post 方法

继承自: GenericAPIView、CreateModelMixin

(2)ListAPIView

提供 get 方法

继承自:GenericAPIView、ListModelMixin

(3)RetireveAPIView

提供 get 方法

继承自: GenericAPIView、RetrieveModelMixin

(4)DestoryAPIView

提供 delete 方法

继承自:GenericAPIView、DestoryModelMixin

(5)UpdateAPIView

提供 put 和 patch 方法

继承自:GenericAPIView、UpdateModelMixin

(6)RetrieveUpdateAPIView

提供 get、put、patch方法

继承自: GenericAPIView、RetrieveModelMixin、UpdateModelMixin

(7)RetrieveUpdateDestoryAPIView

提供 get、put、patch、delete方法

继承自:GenericAPIView、RetrieveModelMixin、UpdateModelMixin、DestoryModelMixin

(8)RetrieveDestoryAPIView

提供 get、delete方法

继承自:GenericAPIView、RetrieveModelMixin、DestoryModelMixin

(9)ListCreateAPIView

提供 get、post方法

继承自:GenericAPIView、ListModelMixin、CreateModelMixin

11.2 快速实现接口

视图

"""
视图子类是通用视图类和模型扩展类的子类
    ListAPIView = GenericAPIView + ListModelMixin           获取多条数据
    CreateAPIView = GenericAPIView + CreateModelMixin       添加一条数据
    RetrieveAPIView = GenericAPIView + RetrieveModelMixin   获取一条数据
    UpdateAPIView = GenericAPIView + UpdateModelMixin       更新一条数据
    DestroyAPIView = GenericAPIView + DestroyModelMixin     删除一条数据
组合视图子类:
    ListCreateAPIView = ListAPIView + CreateAPIView
    RetrieveUpdateAPIView = RetrieveAPIView + UpdateAPIView
    RetrieveDestroyAPIView = RetrieveAPIView + DestroyAPIView
    RetrieveUpdateDestroyAPIView = RetrieveAPIView + UpdateAPIView + DestroyAPIView
"""
from rest_framework.generics import ListAPIView, CreateAPIView, UpdateAPIView, RetrieveAPIView, DestroyAPIView,ListCreateAPIView,RetrieveUpdateDestroyAPIView
from app.models import studentsInfo
from .serializers import StudentModelSerializer

# class StudentView1(ListAPIView, CreateAPIView):
class StudentView1(ListCreateAPIView):
    queryset = studentsInfo.objects.all()
    serializer_class = StudentModelSerializer


# class StudentView2(UpdateAPIView, RetrieveAPIView, DestroyAPIView):
class StudentView2(RetrieveUpdateDestroyAPIView):
    queryset = studentsInfo.objects.all()
    serializer_class = StudentModelSerializer

路由

from django.urls import path, re_path
from . import views

urlpatterns = [
    # APIView
    path('students/', views.StudentView.as_view()),
    re_path(r'^students/(?P<pk>\d+)/$', views.StudentAPIView.as_view()),

    # GenericAPIView
    path('students2/', views.StudentGenericAPIView.as_view()),
    re_path(r'^students2/(?P<pk>\d+)/$', views.StudentGenericAPIView2.as_view()),

    # GenericAPIView和mixin
    path('students3/', views.StudentGenericAPIViewMixin.as_view()),
    re_path(r'^students3/(?P<pk>\d+)/$', views.StudentGenericAPIViewMixin2.as_view()),

    # 视图子类
    path('students4/', views.StudentView1.as_view()),
    re_path(r'^students4/(?P<pk>\d+)/$', views.StudentView2.as_view())
]

标签:GenericAPIView,views,子类,接口,视图,path,view
From: https://www.cnblogs.com/minqiliang/p/16822167.html

相关文章

  • 基于视图集实现接口
    基于视图集实现接口12.1视图集的简介使用视图集ViewSet,可以将一系列逻辑相关的动作放到一个类中:list()提供一组数据retrieve()提供单个数据create()创建数据upd......
  • OpenAPI 接口幂等实现
    OpenAPI接口幂等实现1、幂等性是啥?进行一次接口调用与进行多次相同的接口调用都能得到与预期相符的结果。通俗的讲,创建资源或更新资源的操作在多次调用后只生效一次。......
  • drf视图中调用的请求和响应类
    drf视图中调用的请求和响应类8.1request如果使用视图的时候使用的是drf中的视图(如:APIView),而不是django的视图(View),那么视图中调用的请求对象request不再是原来的req......
  • List接口的常用方法和遍历方式
    packagecom.msb.test01;importjava.util.ArrayList;importjava.util.Iterator;/***@author:liu*日期:16:47:13*描述:IntelliJIDEA*版本:1.0*/p......
  • 使用DRF实现五个api接口
    使用DRF实现五个api接口2.1新建appdjango-adminstartappapp012.2配置环境#注册app01和rest_framework,由于drf提供了web调试界面,所以静态文件功能不能注释掉,不然......
  • httppost请求jwt接口,basic认证
    ///<summary>///jwt验证接口///</summary>///<paramname="url"></param>///<paramname="data"></param>///<ret......
  • Colletion接口常用方法
    packagecom.msb.test01;importjava.util.ArrayList;importjava.util.Arrays;importjava.util.Collection;importjava.util.List;/***@author:liu*日......
  • MD接口文档
    示例接口地址:/demo返回格式:JSON请求方式:POST接口备注:这是一个接口文档示例请求参数说明:名称类型必填(Y/N)说明pwstringY密码JSON请求......
  • APP调用微信接口安全方案设计
    针对AppID、AppSecret账号信息泄露的情况,设计的安全方案。其实前后端交互都可以做参考,尤其是有App客户端的情况下,如果是直接把重要的账号信息直接放到使用者设备上,是非常危......
  • nVisual二次开发——关于视图内对象的获取
    nVisual作为一个图形化管理软件,首要的是将视图内对象渲染出来,对象渲染的数据来源于diagram接口,本章小编带大家了解这个接口。​接口描述:传入视图节点id,获取视图属性、视图背......