DRF视图组件

发布时间:2023年12月25日

【1】两个视图基类

APIView

  • APIView是 Django REST Framework 提供的一个基类,用于创建基于函数或基于类的视图。
  • 使用?APIView?可以根据需求自定义请求处理逻辑,对于简单的接口逻辑,可以直接继承APIView类。

GenericAPIView

  • GenericAPIView是APIView的一个子类,提供了一些常用的通用方法和属性,使开发者能够更方便地编写试图。
  • 通常与Mixin类一起使用,通过继承GenericAPIView和混入相应的功能类可以快速建立功能完善试图。

【2】5个视图扩展类

视图扩展类用于与?GenericAPIView?或其子类配合使用,提供常用的 CRUD(创建、读取、更新和删除)操作。

ListAPIView

  • 继承自GenericAPIView和ListMixin,实现获取多条记录的功能。

CreateAPIView

  • 继承自GenericAPIView和CreateModelMixin,实现创建记录的功能。

DestroyAPIView

  • 继承自GenericAPIView和DestroyModelMixin,实现删除记录的功能。

UpdateAPIView

  • 继承自GenericAPIView和UpdateModelMixin,实现更新记录的功能。

RetrieveAPIView

  • 继承自GenericAPIView和RetrieveModelMixin,实现获取记录单条的功能。

【3】9个视图子类

视图子类用于与?GenericAPIView?或其子类配合使用,提供特定的功能和集成多个操作。

CreateModelMixin

  • 该混入类提供create()方法
  • 用于根据传入的POST请求数据创建模型的新对象实例

ListModelMixin

  • 该混入类提供list()方法
  • 用于检索模型的对象列表,并将其序列化为相应数据

RetrieveModelMixin

  • 该混入类提供retrieve()方法
  • 根据提供的标识符或查找字段检索模型的单个对象实例

DestroyModelMixin

  • 该混入类提供destroy()方法
  • 根据提供的标识符或查找字段处理删除模型的单个对象实例

UpdateModelMixin

  • 该混入类提供update()方法
  • 根据提供的标识符或查找字段处理更新模型的单个对象实例
  • 上面5个混入类并不是独立的视图,而是用于与其他基于类的视图结合使用
  • 例如?APIViewGenericAPIView?或?ViewSet
  • 通过继承这些混入类和适当的视图,开发人员可以轻松地实现所需的功能,避免编写重复的代码。

ListCreateAPIView

  • 继承自GenericAPIView、ListCreateModelMixin,实现获取多条记录和创建记录的功能。

RetrieveUpdateDestroyAPIView

  • 继承自GenericAPIView、RetrieveModelMixin、UpdateModelMixin、DestroyModelMixin,实现获取单条记录、更新记录和删除记录的功能。

RetrieveDestoryAPIView

  • 继承自GenericAPIView、RetrieveModelMixin、DestroyModelMixin,实现获取单条记录的删除记录的功能。

RetrieveUpdateAPIView

  • 继承自GenericAPIView、RetrieveModelMixin、UpdateModelMixin,实现获取单条记录和更新记录的功能。

【4】视图集

  • 视图集是一种组织和管理视图的方式,它包括了多个接口,并允许使用相同的 URL 前缀来映射这些接口。
  • ModelViewSet

    • 继承自GenericViewSet和ModelMixin,提供常用的CRUD操作(创建、读取、更新和删除)
    • 5个接口
  • ReadOnlyModelViewSet

    • 继承自GenericViewSet和ListModelMixin,只提供读取操作(查询所有和查询单条)。
    • 2个接口
    • list和retrieve (查询所有和查询单条)
  • ViewSetMixin

    • 是一个"魔法"混入类,不能单独使用,必须与视图类一起使用,用于改变路由的写法。
  • ViewSet

    • 继承自ViewSetMixin和APIView
    • 用于继承APIView并改变路由的写法
    • 在视图类中的方法可以任意命名。
  • GenericViewSet

    • 继承自ViewSetMixin和GenericAPIView
    • 用于继承GenericAPIView并改变路由的写法
    • 在视图类中的方法可以任意命名。

【5】画图

视图集

视图类

文章来源:https://blog.csdn.net/m0_71292438/article/details/135200253
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。