首页 > 其他分享 >REST framework:分页

REST framework:分页

时间:2024-08-24 13:15:01浏览次数:10  
标签:分页 REST framework param query 每页 page size

REST framework提供了分页的支持

一、全局配置(不建议使用)

在配置文件中设置全局的分页方式:

REST_FRAMEWORK = {
    'DEFAULT_PAGINATION_CLASS':  'rest_framework.pagination.PageNumberPagination',
    'PAGE_SIZE': 10  # 每页数据量
}

二、局部配置

在不同的视图中可以通过pagination_clas属性来指定不同的分页器

1、自定义分页器

定义一个继承PageNumberPagination的类型,在子类中通过属性定义分页器的数据:

  • page_size 每页默认的数据条数
  • page_query_param 前端发送的页数关键字名,默认为"page"
  • page_size_query_param 前端发送的每页数目关键字名,默认为None
  • max_page_size 每页最多的数据条数
from rest_framework.pagination import PageNumberPagination


class UserInfoPagination(PageNumberPagination):
    # 默认每页数据量
    page_size = 10
    page_query_param = 'page'

    page_size_query_param = 'size'

    # 每页的数据量的最大值
    max_page_size = 100

2、使用分页器

class UserView(ModelViewSet):
    # 指定模型类查询集
    queryset = UserInfo.objects.all()
    # 指定序列化器类
    serializer_class = UserInfoSerializer

    # 指定分页器类
    pagination_class = UserInfoPagination

接口文档

 

postman查看

 

 

3、关闭分页功能

如果在视图内关闭分页功能,只需在视图内设置

pagination_class = None

 

三、分页器类型

1) PageNumberPagination
  • 前端访问网址形式:
    http://127.0.0.1:8000/students/?page=4

     

  • 子类中定义的属性:
    page_size 每页数目
    
    page_query_param 前端发送的页数关键字名,默认为"page"
    
    page_size_query_param 前端发送的每页数目关键字名,默认为None
    
    max_page_size 前端最多能设置的每页数量
2)LimitOffsetPagination
  • 前端访问网址形式:
    http://127.0.0.1:8000/students/?limit=100&offset=400
    可以在子类中定义的属性:
    default_limit 默认限制,默认值与PAGE_SIZE设置一直
    
    limit_query_param limit参数名,默认'limit'
    
    offset_query_param offset参数名,默认'offset'
    
    max_limit 最大limit限制,默认None

     

标签:分页,REST,framework,param,query,每页,page,size
From: https://www.cnblogs.com/Durant0420/p/18377585

相关文章

  • REST framework:排序过滤器的使用
    对于列表数据,RESTframework提供了OrderingFilter过滤器来帮助我们快速指明数据按照指定字段进行排序1、在setting中的REST_FRAMEWORK添加配置'DEFAULT_FILTER_BACKENDS':(#这个是指定使用django_filters中的过滤器来进行过滤'django_filters.rest_framework.DjangoFilte......
  • REST framework:过滤
    一、数据准备模型类classUserInfo(models.Model):name=models.CharField(max_length=20,verbose_name='用户名')pwd=models.CharField(max_length=18,verbose_name='密码')email=models.EmailField(max_length=40,verbose_name='邮箱�......
  • REST framework:接口文档
    RESTframework通过第三方库可以自动帮助我们生成网页版的接口文档,自动接口文档能生成的是继承自APIView及其子类的视图1、安装依赖RESTframewrok生成接口文档需要coreapi库的支持 pipinstallcoreapi-ihttp://mirrors.aliyun.com/pypi/simple/--trusted-hostmirrors.......
  • NSSCTF [HNCTF 2022 Week1]Interesting_include
    <?php//WEB手要懂得搜索//flagin./flag.phpif(isset($_GET['filter'])){$file=$_GET['filter'];if(!preg_match("/flag/i",$file)){die("error");}include($file);}else{highlight_file(__......
  • webpack4升级到webpack5后部分页面出现Uncaught (in promise) ReferenceError: Cannot
    循环依赖当两个或多个模块相互引用时,就会发生JavaScript中的循环依赖(也称为循环依赖)。这可以是直接引用(A->B->A):或间接( A->B->C->A):虽然循环依赖可能不会直接导致错误,但它们几乎总是会带来意想不到的后果。这可能表现为TypeScript类型检查缓慢或开发服务器频......
  • 使用Mybatis 的PageHelper插件实现分页查询功能
    Mybatis提供了一个分页插件PageHelper,它会帮助我们自动完成分页和获取总数量的操作,可以方便实现分页查询。第一步,在pom.xml文件引入PageHelper依赖。<dependency><groupId>com.github.pagehelper</groupId><artifactId>pagehelper-spring-boot-s......
  • 利用Spring Boot的RestTemplate进行REST客户端开发
    利用SpringBoot的RestTemplate进行REST客户端开发大家好,我是微赚淘客返利系统3.0的小编,是个冬天不穿秋裤,天冷也要风度的程序猿!在微服务架构中,服务之间的通信通常通过RESTAPI来实现。SpringBoot提供了RestTemplate,这是一个用于同步客户端REST请求的类。本文将介绍如何使用Spri......
  • RestSharp 组件第二弹
    安装的版本NuGet\Install-PackageRestSharp-Version106.15.0加入tokenvarclientForSave=newRestClient("http://10.30.35.22:32080/ipms/v1/12/bulletin-board/reportwork/save");varrequestForSave=newRestRequest(Method.POST);vardataToSave=new{   ......
  • Paper Reading: SAFE: Scalable Automatic Feature Engineering Framework for Indust
    目录研究动机文章贡献本文方法整体框架特征生成特征组合关系排序特征组合生成特征特征选择去除无信息特征去除冗余特征复杂度分析实验结果数据集和实验设置对比实验特征重要性比较运行时间特征稳定性不同迭代次数的性能大规模数据集实验优点和创新点PaperReading是从个人角度进......
  • 学习vue3——分页(前、后端分页两种)
    一、前端分页 后端将所有数据给前端,前端来实现分页1<template>2<divclass="flexitems-centerjustify-centermt-5">3<el-pagination4background5v-model:current-page="currentPage1"6......