drf框架中的分页组件

07-03 分页组件

可选分页器:

1.PageNumberPagination:

可以在字类中定义的属性:

  • page_size 每页数据数
  • page_query_param 前端选择页数的参数
  • page_size_query_param 用户自定义每页显示数据数的前端参数,默认为None
  • max_page_size 前端最多能设置的每页数量

示例:

# paginations.py
from rest_framework.pagination import PageNumberPagination, CursorPagination, LimitOffsetPagination


class CoursePageNumberPagination(PageNumberPagination):
    # 每页数据数
    page_size = 2
    # 选择页数的前端参数
    page_query_param = 'page'
    # 用户自定义每页显示数据数
    page_size_query_param = 'page_size'
    # 每页最多显示数据数
    max_page_size = 10

views.py中配置pagination_class

# views.py
from .paginations import CoursePageNumberPagination

class FreeCourseListAPIView(ListAPIView):
    # 分页器
    pagination_class = CoursePageNumberPagination
    ...

2.LimitOffsetPagination:

可以在字类中定义的属性:

  • default_limit 默认限制,默认值与PAGE_SIZE设置一致
  • imit_query_param limit参数名,默认'limit'
  • offset_query_param offset参数名,默认'offset'
  • max_limit最大limit限制,默认None

示例:

# paginations.py
from rest_framework.pagination import PageNumberPagination, CursorPagination, LimitOffsetPagination


class CourseLimitOffsetPagination(LimitOffsetPagination):
    # 默认一页条数
    default_limit = 2
    # 从offset开始往后显示limit条
    limit_query_param = 'limit'
    offset_query_param = 'offset'
    max_limit = 2

views.py中配置pagination_class

# views.py
from .paginations import CourseLimitOffsetPagination

class FreeCourseListAPIView(ListAPIView):
    # 分页器
    pagination_class = CourseLimitOffsetPagination
    ...

猜你喜欢

转载自www.cnblogs.com/17vv/p/11985538.html