方法一:
现在获取数据都是全件获取,数据量非常大的时候,需要对数量进行限制。
django_rest_framework_test/settings.py
REST_FRAMEWORK = {
'DEFAULT_PAGINATION_CLASS': 'rest_framework.pagination.LimitOffsetPagination',
'PAGE_SIZE': 2
}
设置需要全局设置。在配置文件里,定义REST_FRAMEWORK,设置DEFAULT_PAGINATION_CLASS和PAGE_SIZE。
这样API会出现offset(开始位置)和limit(限制件数,
default=PAGE_SIZE)等参数。
效果如下:
方法二:
当我们后端不管是sql还是nosql,数据量很大时,肯定不可能全部返回到一个页面,就需要做分页,把数据分页展示到多个页面上,相信你已经使用过django的pagination来分页,但是在drf中,使用分页很简单。先看看drf有哪些内置分页类能让我们继承。
1、定义分页类继承PageNumberPagination普通分页
class MyPageNumberPagination(PageNumberPagination):
"""普通分页类"""
# 每页展示多少条数据
page_size = 1
# 前端可以自己通过修改page=10,取哪一页的数据。
page_query_param = 'page'
# 前端可以?size=10000自己配置,每页想取多少条自己设置
page_size_query_param = 'size'
# 最大页码的查询参数名
max_page_size = 1000
后面的查看下边
PageNumberPagination分页器使用_bubblelone的博客-CSDN博客
每页只显示1条数据
如果继承CursorPagination的话:
class MyPageNumberPagination(CursorPagination):
"""加密分页,常见于大型网站"""
cursor_query_param = 'page'
page_size = 1
ordering = 'id'
# 我就直接弄得None,所以url设置每页显示多少条数据的参数没有
page_size_query_param = None
max_page_size = None