drf 分页

分页:

1.简单的分页:
  每页显示条数: page_size = api_settings.PAGE_SIZE
  查询的页码数: page_query_param = "page"
  每页最大显示条数: page_size_query_param = None
  控制最大显示条数:max_page_size = 8
  举例:
    1.-如果我要的数据是第一页显示10条:http://127.0.0.1:8000/books/?ccc=10&page=1
    2.-如果我要的是第二页显示5条:http://127.0.0.1:8000/books/?ccc=5&page=2
    3.使用:
       page_sipmle=PageNumberPagination()
       page_sipmle.page_size=4
       page_sipmle.page_size_query_param='ccc'
       page_sipmle.max_page_size=8
       book_list = models.Book.objects.all()
       page_list = page_sipmle.paginate_queryset(book_list,request,self)
       book_ser = BookSerializer(instance=page_list, many=True)
2.偏移分页:
  设置时,默认偏移条数为5:default_limit = api_settings.PAGE_SIZE
  偏移的条数:limit_query_param = "limit"
  标杆:offset_query_param = "offset"
  最大偏移条数:max_limit = None
  举例:
    1. 结果是:从1到5:-http://127.0.0.1:8000/books/
    2. 结果是:从1到7:-http://127.0.0.1:8000/books/?limit=7
    3. 结果是:从7到8,两条:-http://127.0.0.1:8000/books/?limit=2&offset=6
    4. 结果是:从7到11,5条:-http://127.0.0.1:8000/books/?offset=6

3.游标分页:速度最快,但是只能往前走和往后走
     -   cursor_query_param = 'cursor'  
        page_size = api_settings.PAGE_SIZE    :默认每页显示的条数
        ordering = 'id'                       :按谁排序
        4  5  6     10

  
  


原文地址:https://www.cnblogs.com/yanhui1995/p/9774619.html