视图集的使用

01-APIView的使用

rest_framework.views.APIView

APIView是REST framework提供的所有视图的基类,继承自Django的View父类。

APIViewView的不同之处在于:

  • 传入到视图方法中的是REST framework的Request对象,而不是Django的HttpRequeset对象;
  • 视图方法可以返回REST framework的Response对象,视图会为响应数据设置(render)符合前端要求的格式;
  • 任何APIException异常都会被捕获到,并且处理成合适的响应信息;
  • 在进行dispatch()分发前,会对请求进行身份认证、权限检查、流量控制。
支持定义的属性:
  • authentication_classes 列表或元祖,身份认证类
  • permissoin_classes 列表或元祖,权限检查类
  • throttle_classes 列表或元祖,流量控制类

APIView中仍以常规的类视图定义方法来实现get() 、post() 或者其他请求方式的方法。

*注意 APIView使用过程中要注意所使用的request及response是否为DRF框架提供

02-GenericAPIView的使用

rest_framework.generics.GenericAPIView

继承自APIVIew,增加了对于列表视图和详情视图可能用到的通用支持方法。通常使用时,可搭配一个或多个Mixin扩展类。

支持定义的属性:
  • 列表视图与详情视图通用:

    • queryset 列表视图的查询集
    • serializer_class 视图使用的序列化器
  • 列表视图使用:

    • pagination_class 分页控制类
    • filter_backends 过滤控制后端
  • 详情页视图使用:

    • lookup_field 查询单一数据库对象时使用的条件字段,默认为’pk
    • lookup_url_kwarg 查询单一数据时URL中的参数关键字名称,默认与look_field相同
  • APIView与GenericAPIView使用方式基本一样。在调用查询集及序列化器时稍有不同。

    • 指定序列化器和查询集
  • serializer_class = BookSerializer  # 指定序列化器
    queryset = BookInfo.objects.all()  # 指定数据对象查询集
    
    • 使用序列化器和查询集
    books = self.get_queryset()  # 获取查询集所有数据ser = self.get_serializer(books, many=True)  # 获取序列器对象   获得的是一个序列化器对象
    
    • 获取单一模型对象

      get_object() 只能查询主键,主键形参只能是pk

03-GenericAPIView方法源代码分析

  • 前端请求 —>>自己定义的类视图 ——>> genericapiview 方法

04-拓展类的使用

  • GenericAPIView配合拓展类使用可以极大程度的减少代码量

05-拓展类使用调用流程分析`

  • 前端请求 —>>自己定义的类视图 —>> 拓展类方法 ——>> genericapiview 方法

DRE Viewset(视图集)的使用相关推荐

  1. java中fitlter,068.Python框架Django之DRF视图集使用

    一 视图集与路由的使用 使用视图集ViewSet,可以将一系列逻辑相关的动作放到一个类中: list() 提供一组数据 retrieve() 提供单个数据 create() 创建数据 update() ...

  2. python Django Rest_Framework框架 视图集与路由Routers详解(图文并茂版)

    视图集与路由Routers详解 视图集 ViewSet视图集 代码实现 GenericViewSet视图集 代码实现 ModelViewSet视图集 ReadOnlyModelViewSet视图集 路 ...

  3. DRF 框架总结 - 视图集路由 Routers

    视图集 ViewSet 使用视图集 ViewSet,可以将一系列逻辑相关的动作放到一个类中: list() 提供一组数据 retrieve() 提供单个数据 create() 创建数据 update( ...

  4. DRF--【视图集】详解

    ㈠ . ViewSet 视图集 ViewSetMixin里重写了as_view方法,可以更方便的绑定actions. ViewSet视图集类不再实现get().post()等方法,而是实现动作 act ...

  5. 四十七、python学习之Django框架(DRF框架三):Request与Response、视图与视图集、路由

    Django REST framwork 提供的视图的主要作用: 控制序列化器的执行(检验.保存.转换数据); 控制数据库查询的执行 一.Request与Response: 1. Request:   ...

  6. DRF中的视图集使用

    DRF中的视图集使用 常用的视图集有: ViewSet GenericViewSet ModelViewSet ReadOnlyModelViewSet ViewSet 一个ViewSet类只是一种基 ...

  7. 小波说雨燕 第三季 构建 swift UI 之 UI组件集-视图集(一)视图共性 学习笔记...

    2019独角兽企业重金招聘Python工程师标准>>> 如果想进行自定义的配置,可以继承基类UIView. 地图app中需要多点触动Multiple Touch, opaque不透明 ...

  8. 小波说雨燕 第三季 构建 swift UI 之 UI组件集-视图集(二)ActionSheet视图 学习笔记...

    action动作 sheet表 其实就是一种菜单 参数:1代理:谁去代理它2取消按钮标题3这个按钮标题会自动变成红色4添加设置其他按钮(不想加,设置为nil) 然后我们为这些按钮添加点击事件:

  9. RESTful之视图集ViewSet

    使用视图集ViewSet,可以将一系列逻辑相关的动作放到一个类中: list() 提供一组数据 retrieve() 提供单个数据 create() 创建数据 update() 保存数据 destor ...

最新文章

  1. 《代码敲不队》第五次作业:项目需求分析改进与系统设计
  2. device:GPU:0 but available devices are [ /job:localhost/replica:0/task:0/dev
  3. linux设备驱动归纳总结(四):1.进程管理的相关概念【转】
  4. [SDOI2015]星际战争
  5. 树梅派kali界面_使用树莓派和kali Linux打造便携式渗透套件
  6. python gevent教程_Python的gevent框架的入门教程
  7. B - Friends
  8. Kronos Research推出结合WOO质押机制的新资管产品规模已达1500万美元
  9. C++ 命名空间(namespace)
  10. Windows7安装IIS服务器
  11. origin 修改默认字体
  12. 如何在计算机中增加字体,电脑如何添加字体?WinXP系统新增个性字体的方法
  13. 计算机打游戏的硬件,玩电脑常见的六大误区 看看你犯了几条
  14. [转]中国佛学66句震撼世界的禅语
  15. 基于FPGA的UART串口通信实验(VHDL语言实现)
  16. sqlserver 中使用sqlcmd 执行*.sql文件
  17. 全球隔离,生出不少坏毛病
  18. oracle中部门工资降序排列,oracle面试题整理二(10级学员 乔宇整理)
  19. Java基础学习经验分享
  20. docker容器访问宿主机mysql数据库

热门文章

  1. java管道流有哪些_Java管道流
  2. firewall-cmd设置防火墙规则
  3. 2023/2/13 ubuntu18.04版本无线与有线网络网络配适流程
  4. HttpURLConnection获取百度搜狗360搜索链接重定向真实目标链接地址url
  5. 公关策划书的标准格式及撰写要素
  6. Android官网教你如何系统学习
  7. JAVA中字符串倒序、判断名字中英文、判断手机号格式以及正则表达式应用
  8. python3性能还低吗_Python 2 vs Python 3,究竟谁是性能之王?
  9. Microsoft visual c++2017 X64 Minimum Runtime等vc++运行库问题的解决记录
  10. BMP 图像信息隐藏及检测