Django 分页 (PageNumberPagination)

本文介绍了如何使用Django Rest Framework实现分页功能,重点讲解了PageNumberPagination类的定制,以及在GET请求中根据查询参数灵活控制返回数据量。同时提到了在存在分页需求时如何在不同场景下返回全部数据的方法。

在这里插入图片描述
在这里插入图片描述

传参 按照参数分页 不传返回全部

核心代码:

from rest_framework.pagination import PageNumberPagination

# 分页(局部):自定义分页器 局部
class PageNum(PageNumberPagination):
    # 查询字符串中代表每页返回数据数量的参数名, 默认值: None
    page_size_query_param = 'page_size'
    # 查询字符串中代表页码的参数名, 有默认值: page
    page_query_param = 'page'
    # 一页中最多的结果条数
    # max_page_size = 2
# 查询用户
class getuserlist(APIView):
    def get(self, request):
        queryset = userlist.objects.all()
        print(request)
        if request.GET.get('page'):
            print(queryset)
            # 分页
            pg = PageNum()
            page_objs = pg.paginate_queryset(queryset=queryset, request=request, view=self)
            ser = sergetuserList(instance=page_objs, many=True)  # 关联数据多条
            return Response(ser.data)
        ser = sergetuserList(instance=queryset, many=True)  # 关联数据多条
        return Response(ser.data)


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值