iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >Django drf分页器的使用详解
  • 573
分享到

Django drf分页器的使用详解

2024-04-02 19:04:59 573人浏览 八月长安

Python 官方文档:入门教程 => 点击学习

摘要

前言 当后台返回的数据过多时,我们就要配置分页器,比如一页最多只能展示10条等等,drf中默认配置了3个分页面 PageNumberPagination:基础分页器,性能略

前言

当后台返回的数据过多时,我们就要配置分页器,比如一页最多只能展示10条等等,drf中默认配置了3个分页面

  • PageNumberPagination:基础分页器,性能略差
  • LimitOffsetPagination:偏移分页器
  • CursorPagination:游标分页器,性能强大

PageNumberPagination

基础分页器PageNumberPagination,数据量越大性能越差。

首先我们在app中创建一个pagination.py文件,然后自定义一个分页器类,继承自PageNumberPagination


from rest_framework.pagination import PageNumberPagination
class MyPageNumberPagination(PageNumberPagination):
    """
    普通分页,数据量越大性能越差
    """
    # 默认页面展示的条数
    page_size = 3
    # 前端访问url需要添加 ?page=页码
    page_query_param = 'page'
    # 用户自定义返回的条数,格式?page_size=页数
    page_size_query_param = "page_size"
    # 用户自定义返回的条数最大限制,数值超过5也只展示5条
    max_page_size = 5

如果我们需要局部配置则在类视图中访问使用pagination_class = MyPageNumberPagination即可
如果是全局配置,则在settings.py文件中配置如下:


REST_FRAMEWORK = {
    'DEFAULT_PAGINATION_CLASS': 'api.pagination.MyPageNumberPagination',
}

之后我们访问url只需在后面加入?page=页码数即可
比如Http://127.0.0.1:8000/api/cars/?page=2,代表访问第二页的数据,数据的条数默认为page_size的值
比如http://127.0.0.1:8000/api/cars/?page=2&page_size=5,代表访问第二页的数据,用户自定义返回的条数为5条

LimitOffsetPagination

首先我们自定义一个分页器类,继承自LimitOffsetPagination


class MyLimitOffsetPagination(LimitOffsetPagination):
    # url后面跟limit请求参数,
    limit_query_param = 'limit'
    # url后面跟offset请求参数
    offset_query_param = 'offset'
    # 最大限制20条
    max_limit = 20
    # 默认限制3条
    default_limit = 3

之后我们访问url只需要在后面加入?limit=10即可
比如http://127.0.0.1/api/cars/?limit=10代表访问的数据最多展示10条,如果你limit的值>max_limit,那么还是按照max_limit的值来展示数据的条数
比如http://127.0.0.1/api/cars/?offset=1,这里没有limit参数,所以默认展示3条,offset=1代表从数据库列表中提取数据的时候,是从下标1开始提取,比如提取的数据列表是['test1', 'test2', 'test3', 'test4'],本来我们默认提取前3条,但是你加上offset=1后,他是从列表下标为1开始提取,所以最后提取的数据是test2test3test4

CursorPagination

游标分页器跟基础分页器用法差不多,只是游标分页的针对下一页数据的url进行了加密
首先我们自定义一个分页器类,继承自CursorPagination


class MyCursorPagination(CursorPagination):
    """
    Cursor 光标分页 性能高,安全
    """
    page_size = 10
    page_size_query_param = "page_size"
    max_page_size = 20
    ordering = '-price'

如果我们视图中使用了排序过滤filter_backends = [OrderingFilter],那么我们在访问url的时候必须携带参数?ordering=需要排序的字段

以上就是Django drf分页器的使用的详细内容,更多关于DjanGo drf分页器的资料请关注编程网其它相关文章!

--结束END--

本文标题: Django drf分页器的使用详解

本文链接: https://www.lsjlt.com/news/128832.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Django drf分页器的使用详解
    前言 当后台返回的数据过多时,我们就要配置分页器,比如一页最多只能展示10条等等,drf中默认配置了3个分页面 PageNumberPagination:基础分页器,性能略...
    99+
    2022-11-12
  • Django分页器的用法详解
    目录1、准备基础数据 2、一次性展示数据 3、引入分页器 附:drf分页器的使用1.1 PageNumberPagination 1.2 LimitOffsetPagination ...
    99+
    2022-11-12
  • Django分页器的使用方法
    这篇文章主要介绍了Django分页器的使用方法,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。Django是一个大而全的框架。需要明确的是,传参进行分页获取分页后的数据,一般都...
    99+
    2023-06-15
  • Django Paginator分页器的使用示例
    目录分页后添加删除功能 实现模态框编辑内容 完整代码笔记 利用layui框架实现分页:layui实现完整表格分页:自己实现分页: # name: models.py from dj...
    99+
    2022-11-12
  • Django分页器的用法你都了解吗
    目录1、准备基础数据2、一次性展示数据3、引入分页器Django是一个大而全的框架。需要明确的是,传参进行分页获取分页后的数据,一般都是通过向服务器发送get请求的方式实现的,在向后...
    99+
    2022-11-12
  • Django的基本运用之Django垃圾分类详解
    title: 利用Django实现一个能与用户交互的初级框架 author: Sun-Wind date: September 1, 2021 Django实现基本的框架 ...
    99+
    2022-11-12
  • Vue分页器组件使用方法详解
    本文实例为大家分享了Vue分页器组件的使用,供大家参考,具体内容如下 效果图如下: 鼠标悬浮时切换为箭头: ①创建自定义分页组件Pager.vue:预设主题色为@themeCol...
    99+
    2022-11-13
  • DeveloperSharp 高效分页使用详解
    目录正文◆◆第一种方案如下◆◆◆◆第二种方案如下◆◆正文 支持.Net/.Net Core/.Net Framework,可以部署在Docker, Windows, Linux, ...
    99+
    2022-12-20
    DeveloperSharp 高效分页 DeveloperSharp 分页
  • DeveloperSharp 高效分页使用详解
    目录正文◆◆第一种方案如下◆◆◆◆第二种方案如下◆◆正文 支持.Net/.Net Core/.Net Framework,可以部署在docker, Windows, linux, MAC。 数据分页,几乎是任何应用系统...
    99+
    2022-12-20
    DeveloperSharp 高效分页 DeveloperSharp 分页
  • MyBatisPlus PaginationInterceptor分页插件的使用详解
    实现 配置插件 来到项目下的applicationContext.xml中配置sqlSessionFactoryBean的地方。 <!-- 配置SqlSessionFact...
    99+
    2022-11-11
  • 详解MyBatisPlus中分页插件的使用
    目录MyBatis Plus分页插件使用自定义分页功能MyBatis Plus分页插件使用 MyBatis Plus中使用分页插件也很简单: 首先编写配置类: @Configurat...
    99+
    2023-02-09
    MyBatis Plus分页插件使用 MyBatis Plus分页插件 MyBatis Plus分页
  • Django定时任务Django-crontab的使用详解
    在使用的django做测试平台时,,多多少少都会遇到需要定时任务的功能,比如定时执行任务,检查订单之类的。可能是一段时间,比如每隔 10分钟执行一次,也可能是定点时间,比如 14:0...
    99+
    2022-11-11
  • django redis的使用方法详解
    目录1.说明2.安装3.配置3.1 配置Redis3.2 使用redis存储session3.3 redis连接超时时间设置4.使用redis4.1 使用默认redis4.2 使用指定redis(原生redis)5.连接...
    99+
    2023-04-14
    django redis使用 django redis
  • JavaScript分页组件使用方法详解
    分页组件是web开发中常见的组件,请完成pagination函数,在id为jsPagination的DOM元素中完成分页的显示部分,需求如下 1、最多连续显示5页,居中高亮显示cur...
    99+
    2022-11-12
  • laypage分页控件使用实例详解
    laypage是一款用于实现分页功能的前端插件,使用方便灵活。下面是一个laypage分页控件的使用实例,并对各个参数进行了详细解释...
    99+
    2023-08-16
    laypage
  • MyBatis-Plus实现分页的方法使用详解
    目录简介建库建表依赖配置代码EntityMapperServiceController测试简介 本文介绍MyBatis-Plus的分页的方法。 包括: 不传参数时的默认结果查询不存在...
    99+
    2022-11-13
  • Mybatis-Plus如何使用分页实例详解
    目录1.写个Mybatis-plus配置类:2.写接口测试3.注意4.如果你还有查询条件1.Lambda表达式2.普通查询总结 Mybatis-Plus(简称MP)是一个&...
    99+
    2022-11-13
  • 详解MybatisPlus3.4版本之后分页插件的使用
    目录一、MybatisPlusInterceptor 二、旧版分页插件配置方法(Mybatis Plus 3.4.0版本之前) 三、新的分页插件配置方法(Mybatis Plus 3...
    99+
    2022-11-12
  • 详解Django中 render() 函数的使用方法
    render() 函数 在讲 render() 函数之前,我们在 Django 项目 index 文件夹的 urls.py 和 views.py 中编写如下功能代码:(不难,望读者细...
    99+
    2022-11-12
  • Django原生sql也能使用Paginator分页的示例代码
    django-pagination这是一个python包,来自github上的一个项目,很容易用。 不过这是一个懒人工具,好吧(工具理性)。不过当一个页面有多处需要采用分页的话,就行不通了,要么修改dja...
    99+
    2022-06-04
    也能 分页 示例
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作