table of Contents
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
...