2019独角兽企业重金招聘Python工程师标准>>>

>>> from django.core.paginator import Paginator
>>> objects = ['john', 'paul', 'george', 'ringo']
>>> p = Paginator(objects, 2)
>>> p.count
4
>>> p.num_pages
2
>>> p.page_range
[1, 2]
>>> page1 = p.page(1)
>>> page1
<Page 1 of 2>
>>> page1.object_list
['john', 'paul']
>>> page2 = p.page(2)
>>> page2.object_list
['george', 'ringo']
>>> page2.has_next()
False
>>> page2.has_previous()
True
>>> page2.has_other_pages()
True
>>> page2.next_page_number()
3
>>> page2.previous_page_number()
1
>>> page2.start_index() # The 1-based index of the first item on this page
3
>>> page2.end_index() # The 1-based index of the last item on this page
4
>>> p.page(0)
...
EmptyPage: That page number is less than 1
>>> p.page(3)
...
EmptyPage: That page contains no results
Note

2.Paginator类

带两个构造参数,一个就是数据的集合,另一个表示每页放几个数据

1)构造函数:

Paginator(object_list, per_page, orphans=0, allow_empty_first_page=True)

必传参数

object_list

一个list,tuple,django的QuerySet,或者拥有``count()``或``__len__()``方法的 可分解对象。

per_page

每一页最大的对象个数。

可选参数

orphans

最后一页对象的最少数目,默认为0。 如果想避免最后一页显示太少。则可以使用这个值。 那么最后一页的数据,自动被前移一页。比如总共23个数据。每页显示 10.orphans=3 那么,第一页为10,第二页为13.

allow_empty_first_page

表示首页是否可以为空,如果是 False 而且``object_list`` 为空,那么会触发 EmptyPage 异常。

2)方法

Paginator.page(number)

根据索引number,返回一个’Page’对象,如果不存在,引起 InvalidPage异常

3)属性

Paginator.count

所有对象的总数, 尝试通过``object_list.count()``和``object_list.__len__()`` 取得

Paginator.num_pages

总共的页数

Paginator.page_range

页的范围,比如 [1, 2, 3, 4] 。

InvalidPage 异常

当页面不存在或者无效时,会引起``InvalidPage``异常,一般这个异常就够用,如果需要更 详细信息,还有``PageNotAnInteger``,``EmptyPage``可用:

PageNotAnInteger

page() 的参数非整数。

EmptyPage

page(x) ,第x页没数据。

上述两个都是 InvalidPage 的子类。 用一个简单的 except InvalidPage 就可以处理。

3.Page 类

1)构造函数

Page(object_list, number, paginator):

一般不需用户自己构造,通过`Paginator.page` 生成。

2)方法

Page.has_next()

如果下一页存在,返回True。

Page.has_previous()

如果前一页存在返回 True

Page.has_other_pages()

如果上一页面或者下一页存在,返回``True``

Page.next_page_number()

返回下一页的索引,这个函数比较傻(不管下一页是否存在,都是简单的+1)

Page.previous_page_number()

返回上一页的索引,其他同上

Page.start_index()

返回当前页,第一个对象的索引。

Page.end_index()

道理同上。

3)属性

Page.object_list

当前页对象列表

Page.number

当前页的索引

转载于:https://my.oschina.net/u/1761014/blog/268770

django分页-Paginator类相关推荐

  1. 17. django分页

    分页 Django提供Paginator类来实现分页功能,它位于django.core.paginator 模块中 Paginator Paginator它负责分页数据整体的管理. 语法参数 对象的构 ...

  2. django分页(Paginator)

      有的时候我们会在页面中展示大量数据,全部都放在一页可能会降低用户体验,Django提供了一个Paginator类来帮助我们管理分页数据. 起步 介绍分页器对象的一些属性和方法 1. 引入该类及相关 ...

  3. django使用Paginator分页展示数据

    思路: view得到基本数据: 提供给前端当前页面的数据 判断是否有上一页/下一页 url路由 前端展示 View逻辑 写一个简单的View,使用Paginator时: 首先导入django.core ...

  4. Django 分页和使用Ajax5.3

    分页 Django提供了一些类实现管理数据分页,这些类位于django/core/paginator.py中 Paginator对象 Paginator(列表,int):返回分页对象,参数为列表数据, ...

  5. Django框架视图类

    类视图 在写视图的时候,Django除了使用函数作为视图,也可以使用类作为视图.使用类视图可以使用类的一些特性,比如继承等. View django.views.generic.base.View是主 ...

  6. django分页功能 views与templates

    分页 Django提供了数据分页的类,这些类被定义在django/core/paginator.py中 对象Paginator用于对列进行一页n条数据的分页运算 对象Page用于表示第m页的数据 Pa ...

  7. 分页 Paginator

    分页功能是几乎所有的网站上都需要提供的功能,当你要展示的条目比较多时,必须进行分页,不但能减小数据库读取数据压力,也有利于用户浏览. Django又很贴心的为我们提供了一个Paginator分页工具, ...

  8. django分页实现

    Django分页 Django提供了一个类Paginator用于分页,但Paginator并不具体管理具体的页的处理,而是使用Page对象管理具体页面.下面我们以一个具体的例子来说明一下分页的实现 文 ...

  9. Django 分页模块

    1.分页功能: Django提供了一个新的类来管理分页数据,这个类存放在django/core/paginator.py.它可以接收列表.元组或其它可迭代的对象. 2.导入: from django. ...

最新文章

  1. 面试官:你能说说事务的几个特性是啥?有哪几种隔离级别?
  2. 如果张东升是个程序员
  3. python第一章笔记_head first python(第一章)–学习笔记
  4. STM8单片机低功耗---停机(Halt)模式实现
  5. 软考信息系统项目管理师_项目进度管理2---软考高级之信息系统项目管理师014
  6. 《C#初学者指南》一第1章 初识C#
  7. 洛谷P2606 [ZJOI2010]排列计数(数位dp)
  8. Microsoft Softwares
  9. raspberry pi4B ncnn cpu vulkan benchmark
  10. 清除windows 远程桌面访问记录 批处理
  11. 解读2022城市大脑首批三项标准
  12. 某知名网络安全公司的渗透测试工程师面试题实战汇总
  13. Fliqlo时钟屏保Windows版本
  14. 劳务派遣能解决哪些用工难题?企业关心的都在这里!
  15. 模型导入unity贴图缺失怎么办?
  16. 基于python的动物判别系统
  17. 无线传感器网络定位算法
  18. 服务器主板开机无显维修,主板故障之开机无显示的维修案例
  19. 用Python串口实时显示数据并绘图pyqtgraph(详细教程)
  20. 云原生周刊 | 使用 ChatGPT 协助解决 Prometheus 告警

热门文章

  1. 如何使普通用户授权加入域的权限个数多于十个
  2. ionic 幻灯指令 ion-slide-box
  3. Linux Socket函数手册(二)
  4. 当才华还配不上野心,就静下来学习
  5. Java中注解(非注释^_^) --转载
  6. 在服务器端运行JavaScript文件(二)
  7. div滚动条怎么设置_【20201123】做个用户管理系统(7)——个人资料修改页面、用户头像设置页面的模板的制作...
  8. android真实项目教程(一)——App应用框架搭建_by_CJJ
  9. Java学习系列(十四)Java面向对象之细谈线程、线程通信(上)
  10. Struts2学习笔记(十八) 防止表单重复提交