django利用Paginator对list简单分页

本文介绍了Django的Paginator类在数据分页中的应用。内容包括Paginator的定义、使用方法,如如何导入和创建分页对象,以及Paginator的重要属性如object_list、per_page和orphans。同时,解释了Paginator的count属性表示所有页面对象的总数,num_pages表示页面总数,page_range返回页面范围。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.Paginator是什么?
Paginator为分页器,是django提供了一个来帮助你管理分页数据的新的类。

2.如何使用Paginator?
首先你要先导入Paginator

from django.core.paginator import Paginator

创建分页对象

paginator = Paginator(book_list, 2)  #设置每一页显示几条  创建一个panginator对象

属性设置:

print(Paginator.count) #总数据量
    print(Paginator.num_pages) #分页数
    print(Paginator.page_range) #显示的是页数的标记 就是按钮的数目
    print(page2.has_next())            #是否有下一页
    print(page2.next_page_number())    #下一页的页码
    print(page2.has_previous())        #是否有上一页
    print(page2.previous_page_number()) #上一页的页码
 print(paginator.count)  #通过你创建的对象来调用pangnator的属性  这个是统计总数
    print(paginator.num_pages)  #因为你上面设置了每一页显示两条  这个分页就会是总数除去每一页的显示的数量
    print(paginator.page_range)
    book_list = paginator.page(1)   #这个是对你的分页的数据进行取值  去除你的分过后的第一页
    # book_list ,   paginator.page是取你的分页后的某一页
    print(book_list)

附:Paginator类的解释,方法,属性

class Paginator(object):

    def __init__(self, object_list, per_page, orphans=0,
                 allow_empty_first_page=True):
        self.object_list = object_list
        self.per_page = int(per_page)
        self.orphans = int(orphans)
        self.allow_empty_first_page = allow_empty_first_page
        self._num_pages = self._count = None

1.根据其定义做出以下解释:
object_list:可以是列表,元组,查询集或其他含有 count() 或 len()方法的可切片对象。对于连续的分页,查询集应该有序,例如有order_by()项或默认ordering参数。
per_page:每一页中包含条目数目的最大值,不包括独立成页的那页。(见下面 orphans参数解释)。
orphans=0:当你使用此参数时说明你不希望最后一页只有很少的条目。如果最后一页的条目数少于等于orphans的值,则这些条目会被归并到上一页中(此时的上一页变为最后一页)。例如有23项条目, per_page=10,orphans=0,则有3页,分别为10,10,3.如果orphans>=3,则为2页,分别为10,13。
allow_empty_first_page=True: 默认允许第一页为空。
2.类方法:

Paginator.page(number):根据参数number返回一个Page对象。(number为1的倍数)

3.类属型:

Paginator.count:所有页面对象总数,即统计object_list中item数目。当计算object_list所含对象的数量时, Paginator会首先尝试调用object_list.count()。如果object_list没有 count() 方法,Paginator 接着会回退使用len(object_list)。
Pagnator.num_pages:页面总数。
pagiator.page_range:页面范围,从1开始,例如[1,2,3,4]。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值