djangorestframework 分页
分页方式
- 普通分页 看第n页,每页显示m条数据
- 切割分页 在n个位置,向后查看m条数据
- 加密分页 这与普通分页方式相似,不过对url中的请求页码进行加密
普通分页
新建一个自定义分页类 MyPageNumberPagination
新建分页文件pagenumberpaginations
from rest_framework.pagination import PageNumberPagination class MyPageNumberPagination(PageNumberPagination): page_size = 2 # 每页默认的显示数量 max_page_size = 5 # 每页最大显示数量 page_size_query_param = 'size' # 表示url中每页数量参数 page_query_param = 'page' # url中的页码参数
settings中添加配置
REST_FRAMEWORK = { 'DEFAULT_PAGINATION_CLASS':'app01.pagenumberpaginations.MyPageNumberPagination' }
切割分页
from rest_framework.pagination import LimitOffsetPagination class MyPageNumberPagination(LimitOffsetPagination): default_limit = 2 # 表示默认每页几条数据 limit_query_param = 'limit' # 表示url中本页需要显示数量参数 offset_query_param = 'offse' # 表示从数据库中的第几条数据开始显示参数 max_limit = 5 # 表示每页最大显示页数
加密分页
from rest_framework.pagination import CursorPagination class MyPageNumberPagination(CursorPagination): cursor_query_param = 'cursor' page_size = 2 ordering = 'id' page_size_query_param = 'size' max_page_size = 5