django分页-Paginator类
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类相关推荐
- 17. django分页
分页 Django提供Paginator类来实现分页功能,它位于django.core.paginator 模块中 Paginator Paginator它负责分页数据整体的管理. 语法参数 对象的构 ...
- django分页(Paginator)
有的时候我们会在页面中展示大量数据,全部都放在一页可能会降低用户体验,Django提供了一个Paginator类来帮助我们管理分页数据. 起步 介绍分页器对象的一些属性和方法 1. 引入该类及相关 ...
- django使用Paginator分页展示数据
思路: view得到基本数据: 提供给前端当前页面的数据 判断是否有上一页/下一页 url路由 前端展示 View逻辑 写一个简单的View,使用Paginator时: 首先导入django.core ...
- Django 分页和使用Ajax5.3
分页 Django提供了一些类实现管理数据分页,这些类位于django/core/paginator.py中 Paginator对象 Paginator(列表,int):返回分页对象,参数为列表数据, ...
- Django框架视图类
类视图 在写视图的时候,Django除了使用函数作为视图,也可以使用类作为视图.使用类视图可以使用类的一些特性,比如继承等. View django.views.generic.base.View是主 ...
- django分页功能 views与templates
分页 Django提供了数据分页的类,这些类被定义在django/core/paginator.py中 对象Paginator用于对列进行一页n条数据的分页运算 对象Page用于表示第m页的数据 Pa ...
- 分页 Paginator
分页功能是几乎所有的网站上都需要提供的功能,当你要展示的条目比较多时,必须进行分页,不但能减小数据库读取数据压力,也有利于用户浏览. Django又很贴心的为我们提供了一个Paginator分页工具, ...
- django分页实现
Django分页 Django提供了一个类Paginator用于分页,但Paginator并不具体管理具体的页的处理,而是使用Page对象管理具体页面.下面我们以一个具体的例子来说明一下分页的实现 文 ...
- Django 分页模块
1.分页功能: Django提供了一个新的类来管理分页数据,这个类存放在django/core/paginator.py.它可以接收列表.元组或其它可迭代的对象. 2.导入: from django. ...
最新文章
- 面试官:你能说说事务的几个特性是啥?有哪几种隔离级别?
- 如果张东升是个程序员
- python第一章笔记_head first python(第一章)–学习笔记
- STM8单片机低功耗---停机(Halt)模式实现
- 软考信息系统项目管理师_项目进度管理2---软考高级之信息系统项目管理师014
- 《C#初学者指南》一第1章 初识C#
- 洛谷P2606 [ZJOI2010]排列计数(数位dp)
- Microsoft Softwares
- raspberry pi4B ncnn cpu vulkan benchmark
- 清除windows 远程桌面访问记录 批处理
- 解读2022城市大脑首批三项标准
- 某知名网络安全公司的渗透测试工程师面试题实战汇总
- Fliqlo时钟屏保Windows版本
- 劳务派遣能解决哪些用工难题?企业关心的都在这里!
- 模型导入unity贴图缺失怎么办?
- 基于python的动物判别系统
- 无线传感器网络定位算法
- 服务器主板开机无显维修,主板故障之开机无显示的维修案例
- 用Python串口实时显示数据并绘图pyqtgraph(详细教程)
- 云原生周刊 | 使用 ChatGPT 协助解决 Prometheus 告警
热门文章
- 如何使普通用户授权加入域的权限个数多于十个
- ionic 幻灯指令 ion-slide-box
- Linux Socket函数手册(二)
- 当才华还配不上野心,就静下来学习
- Java中注解(非注释^_^) --转载
- 在服务器端运行JavaScript文件(二)
- div滚动条怎么设置_【20201123】做个用户管理系统(7)——个人资料修改页面、用户头像设置页面的模板的制作...
- android真实项目教程(一)——App应用框架搭建_by_CJJ
- Java学习系列(十四)Java面向对象之细谈线程、线程通信(上)
- Struts2学习笔记(十八) 防止表单重复提交