方法一:
现在获取数据都是全件获取,数据量非常大的时候,需要对数量进行限制。
django_rest_framework_test/settings.pyREST_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 = 1ordering = 'id'# 我就直接弄得None,所以url设置每页显示多少条数据的参数没有page_size_query_param = Nonemax_page_size = None

