REST framework:分页

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

     

posted @   未来可期_Durant  阅读(30)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)
历史上的今天:
2021-08-24 java基础|int和Integer的区别
点击右上角即可分享
微信分享提示