Django分页器

目录

paginator类

paginator常用方法

paginator属性

Page类

Page常用方法

Page常用属性

 异常


Django 提供了一些类来帮助你管理分页数据 ——也就是说,数据被分割在几个页面上,并带有 “上一页/下一页” 的链接。这些类位于 ​​​​​​django/core/paginator.py中。

paginator类

在使用django提供的分页器之前,需要这个paginator类创建一个对象,下面介绍这个类的属性

class object_listper_pageorphans=0allow_empty_first_page=True

  • object_list
    • 必要的。一个列表、元组、 或其他具有 或 方法的可切片对象。为了实现一致的分页, 应该是有序的。即就是进行分页操作的数据
  • per_page
    • 必要的。一个页面中包含的最大项目数,不包括 orphans
  • orphans
    • 可选的。当你不希望最后一页的项目数量很少时,使用这个选项。如果最后一页的项目数量通常小于或等于 ,那么这些项目将被添加到前一页(成为最后一页),而不是让这些项目单独留在一页上。
  • allow_empty_first_page
    • 可选的。是否允许第一页为空。如果 并且 是空的,则会出现错误。Falseobject_list EmptyPage,默认是False

paginator常用方法

  • get_page(int
    • 返回一个给定的基于 1 索引的page对象,同时处理超出范围和无效的页码。如果页数不是数字,它返回第一页。如果页码为负数或大于页数,则返回最后一页。只有当你指定了 并且 为空时,才会引发Emptypage 异常。

  • page(int

    • 返回一个Pge对象,该对象具有给定的从 1 开始的索引。如果无法通过调用 转换为整数,则引发PageNotAnInteger。如果给定的页码不存在,则引发空页。numberint()

paginator属性

  • count
    • 所有页面的对象总数。
  • num_pages
    • 总页数
  • page_range
    • 以 1 为基础的页码范围迭代器,例如产生 。[1,2,3,4]

Page

通过迭代 Paginator,或使用Paginator.pafe()  获得它们。可以理解为通用分页器分页后每一页的数据。

类 object_list, 数字, 分页器

当使用 或直接迭代时,一个页面就像一个Page.object_list的序列。len()

Page常用方法

  • has_next()
    •  如果有下一页,返回 。True
  • has_previous()
    •  如果有上一页,返回 。True
  • ​​​​​​​has_other_pages()
    •  如果有下一页  上一页,返回 。True
  • ​​​​​​​next_page_number()
    •  返回下一页的页码。如果下一页不存在,则引发 Invalidpage异常。
  •  previous_page_number()
    •  返回上一页的页码。如果上一页不存在,则引发 Invalidpage异常。
  •  start_index()
    •  返回页面上第一个对象,相对于分页器列表中所有对象的基于 1 的索引。
  •  end_index()
    •  返回页面上最后一个对象相对于分页器列表中所有对象的基于 1 的索引。 

Page常用属性

  • object_list
    • 此页上的对象列表。
  • number
    • 此页的基于 1 的页码。
  • paginator
    • 关联的分页器对象。

 异常

  • InvalidPage
    •  当分页器被传递一个无效的页码时引发异常的基类。
  •  PageNotAnInteger
    •  当  page()的值不是整数时发生该事件。
  •  EmptyPage
    •  当page() 被赋予一个有效的值,但该页面上没有对象存在时,引发该异常。
    • 后面两个都是InvalidPage的子类。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

HHYZBC

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值