当要查询的数据列表视图会返回很多实例,所以我们想要给这些结果分页,
分页后允许API客户端访问每个单页。 我们可以用分页改变默认的列表风格,我们只要稍微修改setting.py文件,添加下面设置:

  1. REST_FRAMEWORK = {
  2. # 分页
  3. 'DEFAULT_PAGINATION_CLASS': 'rest_framework.pagination.PageNumberPagination', # LimitOffsetPagination 分页风格
  4. 'PAGE_SIZE': 3, # 每页多少条记录
  5. }

自定义分页
  1. # 分页自定义
  2. from rest_framework.pagination import PageNumberPagination
  3. class ArticlePagination(PageNumberPagination):
  4. page_size = 4 # 表示每页的默认显示数量
  5. page_size_query_param = 'page_size' # 表示url中每页数量参数
  6. page_query_param = 'p' # 表示url中的页码参数
  7. max_page_size = 100 # 表示每页最大显示数量,做限制使用,避免突然大量的查询数据,数据库崩溃
  8. class ArticleListleView(generics.ListCreateAPIView):
  9. queryset = Article.objects.all() # 查询结果集
  10. serializer_class = ArticleSerializer # 序列化类
  11. pagination_class = ArticlePagination # 自定义分页会覆盖settings全局配置的

效果如下:

def分页 - 图1

其中更多参数设置,自行参阅相关资料。