返回

Django Paginator 三步实现分页

前端

Django提供了一个新的类来帮助管理分页数据,这个类存放在django/core/paginator.py.它可以接收列表、元组或其它可迭代的对象。本文将分三步介绍Django Paginator 分页的实现步骤。

Django Paginator 分页实现步骤

第一步:导入Paginator类

from django.core.paginator import Paginator

第二步:实例化Paginator对象

paginator = Paginator(object_list, per_page)
  • object_list是要分页的对象列表。
  • per_page是每页要显示的对象数量。

第三步:获取当前页面的对象

page = paginator.page(page_number)
  • page_number是当前页面的页码。

第四步:在模板中显示分页信息

{% if page.has_previous %}
    <a href="{{ page.previous_page_number }}">上一页</a>
{% endif %}

{% for object in page.object_list %}
    {{ object }}
{% endfor %}

{% if page.has_next %}
    <a href="{{ page.next_page_number }}">下一页</a>
{% endif %}

Django Paginator 分页实例

from django.core.paginator import Paginator

# 创建一个包含10个元素的列表
object_list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

# 实例化Paginator对象,每页显示5个元素
paginator = Paginator(object_list, 5)

# 获取第一页的元素
page = paginator.page(1)

# 在模板中显示分页信息
{% if page.has_previous %}
    <a href="{{ page.previous_page_number }}">上一页</a>
{% endif %}

{% for object in page.object_list %}
    {{ object }}
{% endfor %}

{% if page.has_next %}
    <a href="{{ page.next_page_number }}">下一页</a>
{% endif %}

输出结果:

1
2
3
4
5

<a href="?page=2">下一页</a>

Django Paginator 分页注意事项

  • Paginator类只能对可迭代的对象进行分页。
  • Paginator类不提供对分页对象进行排序的功能。
  • Paginator类不提供对分页对象进行过滤的功能。
  • Paginator类不提供对分页对象进行搜索的功能。

总结

Django Paginator 分页是一个非常强大的工具,它可以帮助您轻松地实现分页功能。在本文中,我们介绍了Django Paginator 分页的实现步骤和一些注意事项。希望对您有所帮助。