【Django】paginator分页器的简单使用

有时候前端会按照分页的方式查询数据,例如50条数据,每页展示10条,Django已经给我们提供了分页器,我们只需要调用即可

1.导入模块

from django.core.paginator import Paginator, EmptyPage

2.创建Paginator对象

skus = SKU.objects.filter(category_id=category_id,is_launched=True).order_by(sort)
paginator = Paginator(skus, page_size)

Paginator()需要两个参数,第一个是要分页的对象,第二个是每页多少项

3.查询

获取指定页的子集,若不存在该页则抛EmptyPage异常,若不是整数则抛PageNotAnInteger异常

skus = SKU.objects.filter(category_id=category_id,is_launched=True).order_by(sort)
paginator = Paginator(skus, page_size)

page = 5
try:
    # cur_page是skus查询集的子集
    cur_page = paginator.page(page)
except EmptyPage as e:
    print(e)
    return JsonResponse({
    
    'code': 400,'errmsg': '找不到指定页'})
...

paginator.count  # 总数量
paginator.num_pages  # 总页数

猜你喜欢

转载自blog.csdn.net/qq_39147299/article/details/108539677