drf frame assembly tab

07-03 paging component

Optional pager:

1.PageNumberPagination:

Attribute can be defined in the word class:

  • page_size number of data per page
  • page_query_param distal select page parameters
  • page_size_query_param custom page shows the number of data parameters distal Default is None
  • Per page set up to the front max_page_size

Example:

# 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 configured pagination_class

# views.py
from .paginations import CoursePageNumberPagination

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

2.LimitOffsetPagination:

Attribute can be defined in the word class:

  • default_limit default limit, set the default value is consistent with PAGE_SIZE
  • imit_query_param limit parameter name, the default 'limit'
  • offset_query_param offset parameter name, the default 'offset'
  • max_limit maximum limit restrictions, the default None

Example:

# 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 configured pagination_class

# views.py
from .paginations import CourseLimitOffsetPagination

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

Guess you like

Origin www.cnblogs.com/17vv/p/11985538.html