REST framework提供了分页的支持
一、全局配置(不建议使用)
在配置文件中设置全局的分页方式:
REST_FRAMEWORK = {'DEFAULT_PAGINATION_CLASS': 'rest_framework.pagination.PageNumberPagination','PAGE_SIZE': 10 # 每页数据量 }
二、局部配置
在不同的视图中可以通过pagination_clas属性来指定不同的分页器
定义一个继承PageNumberPagination的类型,在子类中通过属性定义分页器的数据:
-
page_size 每页默认的数据条数
-
page_query_param 前端发送的页数关键字名,默认为"page"
-
page_size_query_param 前端发送的每页数目关键字名,默认为None
-
from rest_framework.pagination import PageNumberPaginationclass UserInfoPagination(PageNumberPagination):# 默认每页数据量page_size = 10page_query_param = 'page'page_size_query_param = 'size'# 每页的数据量的最大值max_page_size = 100
class UserView(ModelViewSet):# 指定模型类查询集queryset = UserInfo.objects.all()# 指定序列化器类serializer_class = UserInfoSerializer# 指定分页器类pagination_class = UserInfoPagination
pagination_class = None
三、分页器类型
-
http://127.0.0.1:8000/students/?page=4
-
page_size 每页数目page_query_param 前端发送的页数关键字名,默认为"page"page_size_query_param 前端发送的每页数目关键字名,默认为Nonemax_page_size 前端最多能设置的每页数量
-
http://127.0.0.1:8000/students/?limit=100&offset=400
default_limit 默认限制,默认值与PAGE_SIZE设置一直limit_query_param limit参数名,默认'limit'offset_query_param offset参数名,默认'offset'max_limit 最大limit限制,默认None