作者:HelloGitHub-追梦人物

如果没有设置分页,django-rest-framework 会将所有资源类表序列化后返回,如果资源很多,就会对网站性能造成影响。为此,我们来给博客文章列表 API 添加分页功能。

django-rest-framework 为分页功能提供了多个辅助类,常用的有:

  • PageNumberPagination
    将资源分为第 1 页、第 2 页...第 n 页,使用页码号请求分页结果。
  • LimitOffsetPagination
    通过 limitoffset 两个参数来控制请求的资源。例如通过发送 API 请求:/posts/?offset=20&limit=5,将获取文章资源列表第 20 篇后的 5 篇文章。如果 offset 以等差数列递增,limit 保持不变,则等价于按页码分页。但 offset 和 limit 可以为任意值,因此这种分页比 PageNumberPagination 更加灵活。

要使用分页功能非常简单,只需在项目的配置文件中配置好分页选项,即可全局启用分页功能。打开 config/common.py 配置文件,写入如下的分页配置:

REST_FRAMEWORK = {# 设置 DEFAULT_PAGINATION_CLASS 后,将全局启用分页,所有 List 接口的返回结果都会被分页。# 如果想单独控制每个接口的分页情况,可不设置这个选项,而是在视图函数中进行配置"DEFAULT_PAGINATION_CLASS": "rest_framework.pagination.PageNumberPagination",# 这个选项控制分页后每页的资源个数"PAGE_SIZE": 10,
}

配置完成之后,所有通用视图函数或者视图集生成的资源列表 API,返回的资源列表都会被分页。配置文件中的分页设置将作用于全局,如果某个视图函数或者视图集不想使用全局配置怎么办呢?可以在视图函数或者视图集中设置 pagination_class 属性,指定需要使用的分页辅助类即可。例如将博客文章列表分页替换为 limit offset 的分页方式,可以这样设置:

from rest_framewrok.pagination import PageNumberPaginationclass PostViewSet(viewsets.GenericViewSet):pagination_class = LimitOffsetPagination

这样,PostViewSet 视图集将返回 limit offset 分页形式的文章列表,而其他视图或者视图集仍将使用全局的分页配置。

请求文章 api,返回结果如下:

对返回结果的解释:

count:总资源数目

next:下一页资源的链接

previous:上一页资源的链接

results:当前页的资源列表

接口api全局挂载_第 6 篇:分页接口相关推荐

  1. hdmi接口有什么用_一文了解DP接口和HDMI接口分别怎么用?哪个更好?两者的区别?...

    七彩-颖欣 一.DP接口 DisplayPort缩写DP,是一个由PC及芯片制造商联盟开发,视频电子标准协会(VESA)标准化的数字式视频接口标准.该接口免认证免授权,主要用于视频源与显示器等设备的连 ...

  2. vue调用接口获取后台数据_使用Vue实现调用接口加载页面初始数据

    使用Vue实现调用接口加载页面初始数据 闲着没事写了一个电影推荐的网页,很简单,使用的是Vue的实现. let vm = new Vue({ el:'#content', data:{ name:'' ...

  3. 接口测试用例设计思路_基于python语言的接口自动化demo小实战

    近期通过自己的学习以及实战,完成了一个关于测试接口的接口自动化demo. 下面想跟大家分享一下,主要的思路是根据接口文档确定测试用例,并将测试用例写在excel中. 01 因为只是小作demo,测试用 ...

  4. 路由器上的usb接口有什么用_路由器上面的USB接口有什么用途,你都知道吗?

    路由器是连接两个或多个网络的硬件设备,在网络间起网关的作用,是读取每一个数据包中的地址然后决定如何传送的专用智能性的网络设备,现在几乎每个家庭都有一个或者多个路由器.常见的家用路由器背后都会有一个WA ...

  5. hdmi接口有什么用_电脑上的Type-C接口到底有什么用呢

    前言 Type-C接口现在被大量运用,包括手机.平板电脑.台式机主板.笔记本电脑.显示器甚至剃须刀上都能看到它的身影,那你知道电脑上Type-C到底有什么用吗?今天咱们就来聊聊这个话题. 首先要知道的 ...

  6. 组件接口(API)设计指南-文件夹

    组件接口(API)设计指南-文件夹 组件接口(API)设计指南[1]-要考虑的问题 组件接口(API)设计指南[2]-类接口(class interface) 组件接口(API)设计指南[3]-托付( ...

  7. 认知智能机器人接口API分享。非常好用,免费。

    道翰天琼认知智能未来机器人接口API简介介绍 最近在寻找一个机器人接口.每个需要的时候,它总会适时的出现,且有问必答,虽偶尔会有,客观的粗粝真实远好过刻意的完美精致:对,这就是机器人未来,雁过无痕叶落 ...

  8. 通达信接口API的简介

    通达信接口API接口是相对流行的快速通达信数据excel接口,能够提供多家券商,包括通达信数据excel接口.量化回测平台等. 通达信接口API功能概述(部分) 通达信接口API可以快速进入,支持市场 ...

  9. PHP调用快递100电子面单接口API接口

    PHP调用快递100电子面单接口API接口 1.注册申请快递100接口 2.接口调用 1.注册申请快递100接口 https://poll.kuaidi100.com/pollquery/pollSt ...

最新文章

  1. 用osgEarth实现Cesium的后处理特效(1)
  2. R语言使用ggplot2包使用geom_dotplot函数绘制分组点图(自定义分组颜色、主题)实战(dot plot)
  3. 大学开设python课程吗_在大学为什么你一定要学会Python?
  4. 白话Elasticsearch16-深度探秘搜索技术之使用原生cross-fiedls技术解决搜索弊端
  5. SELECT COUNT(*) 底层究竟干了啥么?
  6. oracle到pg不停机增量迁移,研究 Oracle 到 PostgreSQL 的数据迁移 – 以 pgloader 为例 – Phy 的博客...
  7. kruskal算法_大厂面试为什么总是考算法?
  8. JavaScript学习(六十五)—数组知识点总结
  9. python——zip()、map()、enumerate()、filter()、apply函数
  10. java中文件和流处理
  11. 破解版本的Charles
  12. python 实现文字识别提取
  13. 谷粒学院P21所需的maven jar包
  14. SpringBoot整合log4j2
  15. 各大公司Java面试题超详细总结
  16. c语言程序设计移动字母,C语言程序设计实例大全(220个例子)
  17. linux:解压命令
  18. Linux根据关键字批量杀进程
  19. 图像平滑c语言,OpenCV实现二值图像的边缘光滑处理
  20. GHOST -ntexact 正常还原

热门文章

  1. 【Win32汇编】数组累加
  2. Mysql 将一张表的数据插入到另一张表中
  3. python 获得两个数组(List)交集、并集与差集
  4. 102. 最佳牛围栏【二分 / 思维 不错】
  5. 【PAT乙级】1051 复数乘法 (15 分)
  6. Python网络爬虫与信息提取(三):网络爬虫之实战
  7. 计算机研究生上课时间自由吗,计算机在职研究生面授班主要的上课时间安排是怎样的呢...
  8. python安卓版turtle模块下载_python之turtle的模块
  9. 搞 java7 年,我有点想法想和大家聊聊
  10. IDEA 上位?不!Eclipse Theia 1.0 发布!