paginator

django提供了分页Paginator类,构造:

__init__(self, object_list, per_page, orphans=0, allow_empty_first_page=True):

object_list 要被分页的 list
per_page 每页大小 int
orphans 最后一页允许的大小 int
allow_empty_first_page 是否允许第一页为空

此外,该Paginator有属性:

count 获取总数
num_pages 获取页数
page_range 获取所有页码

这是一个通用的分页程序,会遍历处理object_list,处理步骤:

1、检查object_list是否有序,无序则抛出警告
2、用户调用page(number),传入页码则返回相应的页
3、在page中,首先校验number为从1开始到总页数的数字,且若设置了allow_empty_first_page在页数大于总页数无数据的情况下也视为正常
4、之后计算边界,同时判断最后一页的大小是否满足orphans,不满足则添加到本页一起返回

5、调用Page构造器,接收object_list, number, paginator,构造一个Page出来。
6、用户使用Page:

可调用len在其上获得数量
可按照数组使用获得值
有has_next判断是否还有下一页了
有has_previous判断是否有前一页,即判断number是否为1
有has_other_pages为有has_next或有has_previous
有next_page_number、previous_page_number
有start_index、end_index获得该页数据在所有数据中的索引
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 32,252评论 18 399
  • 练习Django Paginator的使用使页面更整洁。 第一阶段 首先要做的是搭建整个框架,包括如何连接数据库,...
    Sugeei阅读 4,758评论 0 0
  • 插件地址https://github.com/miemiedev/mybatis-paginator 在Maven...
    尽心上阅读 11,036评论 0 9
  • 方法一:使用pure_pagination进行分页 1. pure_pagination介绍 pure_pagin...
    Jlan阅读 4,799评论 0 7
  • 当第一片月光撒进灰色的窗台, 所有星辰如约纷至到来, 灭掉将燃尽的火光, 将鲜艳的水果摆上, 小小的夜,风儿吹, ...
    理想与陳阅读 1,765评论 1 4

友情链接更多精彩内容