在本节中,我们将介绍 Django 为我们提供的高级模块,通过高级模块的学习,你会感受到 Django 的易用性如此之强,但是同时它又很复杂,所以在学习 Django 这样的重度框架的时候,我们一定要切记急躁,对于新的知识要敢于探索,除了要跟随着本教程的进度学习之外,大家也要拿出时间多阅读 Django 源码、官方文档,这样才能帮助自己尽快的提升。
本节要讲的分页功能大家一定不陌生,就像课本上的一篇篇课文一样,如果课文内容很多就会分成很多页,展示给读者。这和我们在开发阶段处理数据信息是一样的,因为大多数情况下,我们往往会面对很多的数据信息,为了让这些信息显示的更便于阅读以及减小数据的提取量从而减少服务器的压力等,我们就会采用分页的处理方法,Django 为开发者提供了内置的模块 Paginator 类。它的使用场景处处可见,比如某宝网购物时,显示下一页的商品,或者是用数字 1、2、3 等标注的页码,都属于分页的设计。
- 认识Paginator对象属性及方法
- Paginator类构造函数参数
本节中我们先对 Paginator 类进行的介绍,最后通过项目的实例演示,加深大家对该模块的理解。Paginator 可以叫它为分页器,实际上它也是一个 Python 类,要使用它的时候我们可以用如下方式进行引入:
from django.core.paginator import Paginator
这个类被定义在 django.core.paginator 模块中,它的构造函数如下所示:
class Paginator:
def __init__(self, object_list, per_page, orphans=0,
allow_empty_first_page=True)
其中每个参数的含义如下所示:
object_list, 对象列表即查询到的数据。
per_page, 每一页展示的内容,即每页的数据条数。
orphans=0, 为避免最后一页数据过少时设置,若最后一页的数据小于这个值,会合并到上一页,可省略。
allow_empty_first_page=True, 允许首页为空 ,默认为 True。
2) Paginator对象的属性
我们可以使用如下方法获取一个分页器对象:
paginator = Paginator(exam, 10)
它的属性如下所示:
In [1]: from django.core.paginator import Paginator
#待分页的数据
In [2]: objects=['a','b','c','d','e','f','g']
#获取分页器对象
In [3]: p = Paginator(objects, 2)
#需要分类数据的对象总数
In [4]: p.count
Out[4