Django(part43)中如何实现高效的分页处理?

2026-06-10 22:467阅读0评论SEO资源
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计655个文字,预计阅读时间需要3分钟。

Django(part43)中如何实现高效的分页处理?

学习笔记,仅供参考,有误必纠+分页+分页是指在web页面有大数量数据时,需要分时显示。当一页的内容过多,不利于阅读和数据的提取情况下,可以分页进行展示;+Django提供了多种分页类。

学习笔记,仅供参考,有错必纠

Django(part43)中如何实现高效的分页处理?


分页



分页是指在web页面有大量数据需要显示时,当一页的内容太多不利于阅读和不利于数据提取的情况下,可以分为多页进行显示;

Django提供了一些类管理分页的数据 , 即将数据分在不同页面中,并带有​​上一页/下一页​​的链接;

这些类位于django/core/paginator.py文件中。



Paginator对象



  • Paginator对象的构造方法
Paginator(object_list, per_page)
#object_list 对象列表,比如models.Book.objects.all()
#per_page 每页数据个数,比如10

该构造函数的返回值为一个​​分页对象​​



  • Paginator属性
count
#对象总数
num_pages
#页面总数
page_range
#从1开始, 用于记录当前面码数
per_page
#每页最大个数



  • Paginator方法
Paginator.page(number)
#参数 number为页码信息(从1开始)
#返回当前number页对应的页信息
#如果提供的页码不存在,抛出InvalidPage异常



  • Paginator异常exception
InvalidPage
#当向page()传入一个无效的页码时抛出
PageNotAnInteger
#当向page()传入一个不是整数的值时抛出
EmptyPage
#当向page()提供一个有效值,但是那个页面上没有任何对象时抛出



Page对象



调用Paginator对象的page()方法,将返回Page对象,不需要我们手动构造。



  • Page对象属性
object_list
#当前页上所有对象的列表
number
#当前页的序号(从1开始)
paginator
#当前page对象相关的Paginator对象



  • Page对象方法
has_next()
#如果有下一页返回True
has_previous()
#如果有上一页返回True
has_other_pages()
#如果有上一页或下一页返回True
next_page_number()
#返回下一页的页码,如果下一页不存在,抛出InvalidPage异常
previous_page_number()
#返回上一页的页码,如果上一页不存在,抛出InvalidPage异常
len()
#返回当前页面对象的个数



  • 注意事项

Page对象是可迭代对象,可以用for语句来访问当前页面中的每个对象。

本文共计655个文字,预计阅读时间需要3分钟。

Django(part43)中如何实现高效的分页处理?

学习笔记,仅供参考,有误必纠+分页+分页是指在web页面有大数量数据时,需要分时显示。当一页的内容过多,不利于阅读和数据的提取情况下,可以分页进行展示;+Django提供了多种分页类。

学习笔记,仅供参考,有错必纠

Django(part43)中如何实现高效的分页处理?


分页



分页是指在web页面有大量数据需要显示时,当一页的内容太多不利于阅读和不利于数据提取的情况下,可以分为多页进行显示;

Django提供了一些类管理分页的数据 , 即将数据分在不同页面中,并带有​​上一页/下一页​​的链接;

这些类位于django/core/paginator.py文件中。



Paginator对象



  • Paginator对象的构造方法
Paginator(object_list, per_page)
#object_list 对象列表,比如models.Book.objects.all()
#per_page 每页数据个数,比如10

该构造函数的返回值为一个​​分页对象​​



  • Paginator属性
count
#对象总数
num_pages
#页面总数
page_range
#从1开始, 用于记录当前面码数
per_page
#每页最大个数



  • Paginator方法
Paginator.page(number)
#参数 number为页码信息(从1开始)
#返回当前number页对应的页信息
#如果提供的页码不存在,抛出InvalidPage异常



  • Paginator异常exception
InvalidPage
#当向page()传入一个无效的页码时抛出
PageNotAnInteger
#当向page()传入一个不是整数的值时抛出
EmptyPage
#当向page()提供一个有效值,但是那个页面上没有任何对象时抛出



Page对象



调用Paginator对象的page()方法,将返回Page对象,不需要我们手动构造。



  • Page对象属性
object_list
#当前页上所有对象的列表
number
#当前页的序号(从1开始)
paginator
#当前page对象相关的Paginator对象



  • Page对象方法
has_next()
#如果有下一页返回True
has_previous()
#如果有上一页返回True
has_other_pages()
#如果有上一页或下一页返回True
next_page_number()
#返回下一页的页码,如果下一页不存在,抛出InvalidPage异常
previous_page_number()
#返回上一页的页码,如果上一页不存在,抛出InvalidPage异常
len()
#返回当前页面对象的个数



  • 注意事项

Page对象是可迭代对象,可以用for语句来访问当前页面中的每个对象。