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
...