当要查询的数据列表视图会返回很多实例,所以我们想要给这些结果分页,
分页后允许API客户端访问每个单页。 我们可以用分页改变默认的列表风格,我们只要稍微修改setting.py文件,添加下面设置:
REST_FRAMEWORK = {
# 分页
'DEFAULT_PAGINATION_CLASS': 'rest_framework.pagination.PageNumberPagination', # LimitOffsetPagination 分页风格
'PAGE_SIZE': 3, # 每页多少条记录
}
自定义分页
# 分页自定义
from rest_framework.pagination import PageNumberPagination
class ArticlePagination(PageNumberPagination):
page_size = 4 # 表示每页的默认显示数量
page_size_query_param = 'page_size' # 表示url中每页数量参数
page_query_param = 'p' # 表示url中的页码参数
max_page_size = 100 # 表示每页最大显示数量,做限制使用,避免突然大量的查询数据,数据库崩溃
class ArticleListleView(generics.ListCreateAPIView):
queryset = Article.objects.all() # 查询结果集
serializer_class = ArticleSerializer # 序列化类
pagination_class = ArticlePagination # 自定义分页会覆盖settings全局配置的
效果如下:
其中更多参数设置,自行参阅相关资料。