分页Pagination

发布时间 2023-04-06 16:57:15作者: Hide_凉辰
  • 分页全局配置
        # 分页组件全局配置
        # 'DEFAULT_PAGINATION_CLASS': 'rest_framework.pagination.PageNumberPagination',
        # 'PAGE_SIZE': 5,

     

  • 自定义分页组件使用
  • 自写分页组件类
  • from rest_framework.pagination import PageNumberPagination, LimitOffsetPagination
    
    
    class MyPagination(PageNumberPagination):
        """自定义分页器"""
        # 我们指定的默认单页数据量(我们不指定默认是100)
        page_size = 3
        # 提供自选单页数据量
        # http://127.0.0.1:8181/students/sp/?size=2
        page_size_query_param = "size"  # 重命名路由查询时的分页大小属性
        max_page_size = 100
    
    
    class MyLimit(LimitOffsetPagination):
        """自定义偏移量分页器"""
        # 单页数据量
        default_limit = 10
        max_limit = 50
    
        # 默认偏移量为2,即从第2条数据查询开始(版本较高已经删除使用了)
        # default_offset = 2
        # offset_query_param = "offset"  # 重命名路由查询时的偏移量属性名
        limit_query_param = "limit"  # 重命名路由查询时的单页数据量属性名

     

  • 视图使用(偏移量分页类不能和分页类同时使用,若强行使用需要修改自定义分页器中方法)
  • class StudentModelViewSetPage(ModelViewSet):
        queryset = Student.objects.all()  # 指定视图操作的层级为所有数据
        serializer_class = StudentModelSerializers  # 指定序列化器
        from FRAMEWORK.MyPagination import MyPagination,MyLimit # 导入分页类,偏移量分页类
        pagination_class = MyPagination