DRF的三种分页方式

新建一个自定义分页类文件pagination

普通分页

from rest_framework.pagination import PageNumberPagination

class MyPageNumberPagination(PageNumberPagination):
    page_size = 2
    max_page_size = 5
    page_size_query_param = 'size'
    page_query_param = 'page'
    
    '''
    age_query_param:表示url中的页码参数
		page_size_query_param:表示url中每页数量参数
		page_size:表示每页的默认显示数量
		max_page_size:表示每页最大显示数量,做限制使用,避免突然大量的查询数据,数据库崩溃
    '''

切割分页

class MyPageNumberPagination(LimitOffsetPagination):
    default_limit = 2
    limit_query_param = 'limit'
    offset_query_param = 'offset'
    max_limit = 5
    
    '''
    default_limit:表示默认每页显示几条数据
		limit_query_param:表示url中本页需要显示数量参数
		offset_query_param:表示从数据库中的第几条数据开始显示参数
		max_limit:表示每页最大显示数量,做限制使用,避免突然大量的查询数据,数据库崩溃
    '''

加密分页

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:表示返回数据的排序方式
    '''

分页配置

'DEFAULT_PAGINATION_CLASS': 'tools.pagination.Pagination'

本文为原创文章,未经授权禁止转载本站文章。
原文出处:兰玉磊的个人博客
原文链接:https://www.fdevops.com/2020/09/12/drf-5589
版权:本文采用「署名-非商业性使用-相同方式共享 4.0 国际」知识共享许可协议进行许可。

(5)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2020年9月9日 23:17
下一篇 2020年9月13日 22:50

相关推荐

发表回复

您的电子邮箱地址不会被公开。