其他分享
首页 > 其他分享> > Django内置分页

Django内置分页

作者:互联网

     from django.core.paginator import Paginator

  获取queryset对象

    goods_list = Goods.objects.all().order_by('id')

  实例化分页类对象

    paginator = Paginator(goods_list, 2)

Paginator类对象的属性

序号属性名说明
1 num_pages 返回分页之后的总页数
2 page_range 返回分页后的页码列表
3 count 需要分页的总记录数

Paginator类对象的方法

序号方法名说明
1 get_page(self, number) 返回第number页的page类实例对象

Page实例对象的属性

序号属性名说明
1 number 返回当前页的页码
2 object_list 返回当前页的数据查询集
3 paginator 返回对应的Paginator类对象

分页功能实现

from rest_framework.response import Response
from rest_framework.views import APIView
from school.serializers import *


class StudentsAPIView(APIView):
def get(self, request):
page_number = request.GET.get('page', 1) # 获取客户端发送的页码,默认为1
page_size = request.GET.get('page_size', 2) # 获取客户端发送的每页数量,默认为1
try:
page_number = int(page_number) # 处理页码, 过滤无效的数据
except:
page_number = 1

goods_set = Student.objects.all().order_by('id')

paginator = Paginator(goods_set, page_size) # 得到分页器对象
page = paginator.get_page(page_number) # 得到当前页码对象

ser = StudentSerializer(page.object_list, many=True)

return Response(ser.data)

标签:Paginator,paginator,内置,分页,get,number,Django,page
来源: https://www.cnblogs.com/ziheng8/p/14829929.html