rest_framework为我们提供了三种分页的方法
- 普通分页
- 切割分页
- 加密分页
普通分页的写法
- 配置setting
'DEFAULT_PAGINATION_CLASS': 'app07.mypagenumberpagination.MyPageNumberPagination'
2.创建一个文件夹mypagenumberpagination
class MyPageNumberPagination(PageNumberPagination):
page_size = 1
max_page_size = 1
page_size_query_param = 'size'
page_query_param = 'page'
'''
age_query_param:表示url中的页码参数
page_size_query_param:表示url中每页数量参数
page_size:表示每页的默认显示数量
max_page_size:表示每页最大显示数量,做限制使用,避免突然大量的查询数据,数据库崩溃
'''
##切割分页
from rest_framework.pagination import LimitOffsetPagination
class MyPageNumberPagination(LimitOffsetPagination):
default_limit = 1
limit_query_param = 'limit'
offset_query_param = 'offset'
max_limit = 1
'''
default_limit:表示默认每页显示几条数据
limit_query_param:表示url中本页需要显示数量参数
offset_query_param:表示从数据库中的第几条数据开始显示参数
max_limit:表示每页最大显示数量,做限制使用,避免突然大量的查询数据,数据库崩溃
'''
##加密分页
from rest_framework.pagination import CursorPagination
class MyPageNumberPagination(CursorPagination):
cursor_query_param = 'cursor'
page_size = 1
ordering = 'id'
page_size_query_param = 'size'
max_page_size = 1
'''
cursor_query_param:表示url中页码的参数
page_size_query_param:表示每页显示数据量的参数
max_page_size:表示每页最大显示数量,做限制使用,避免突然大量的查询数据,数据库崩溃
ordering:表示返回数据的排序方式
'''