分页:
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