Django - 分页(Pagination)

Django - 分页(Pagination) 首页 / Django入门教程 / Django - 分页(Pagination)
django pagination

Pagination 分页使无涯教程可以在多个页面上分发可迭代的内容。 然后,可以使用上一页下一页按钮的页码导航到这些页面。

分页器类和页面对象

Django提供了一个 Paginator 类,该类具有以下属性:

  • page(page_number)            -  返回具有给定page_number的page_object
  • has_previous                          -   是否有上一页,返回True/False
  • has_next                                   -   是否有下一页,返回true/False
  • previous_page_number     -  返回上一页码
  • next_page_number              -   返回下一页号
  • number                                      -  返回当前页码
  • paginator.num_pages         -  返回总页码

首先,导入 Paginator 类。

from django.core.paginator import Paginator

现在,选择每页的对象数。

p = Paginator(queryset, number_of_objects_per_page)

然后,使用 page()函数制作页面对象。

page_object = p.page(page_number)

为了从URL请求获取页码,请使用:

链接:https://www.learnfk.comhttps://www.learnfk.com/django/django-pagination.html

来源:LearnFk无涯教程网

page_object = p.page(request.GET.get('page'))

最后,返回 page_object 作为上下文变量。 views.py下的组合代码如下所示:

    from django.core.paginator import Paginator
    def my_view_function(request):
        queryset = ['A', 'B', 'C', 'D', 'E']        # sample data
        p = Paginator(queryset, 1)                  # for 1 object per page
        try:
            page_number = request.GET.get('page')
            page_object = p.page(page_number)
        except:
            page_object = p.page(1)                 # load first page by default
        return render(request, 'my_template.html', {'page_object':page_object})
                                

在模板中添加分页

要从 Paginator page_object 应用页面效果,请参考以下代码:

        {% for i in page_pbject %}
            {{i}}
        {% endfor %}}
        
        {% if page_object.has_previous %}
            href="?page={{ page_object.previous_page_number }}"
        {% endif %}
        Page {{ page_object.number }} of {{ page_object.paginator.num_pages }}
        {% if page_object.has_next %}
            href="?page={{ page_object.next_page_number }}"
        {% endif %}
                                

祝学习愉快!(内容编辑有误?请选中要编辑内容 -> 右键 -> 修改 -> 提交!)

技术教程推荐

微服务架构核心20讲 -〔杨波〕

技术管理实战36讲 -〔刘建国〕

性能工程高手课 -〔庄振运〕

架构实战案例解析 -〔王庆友〕

手机摄影 -〔@随你们去〕

代码之丑 -〔郑晔〕

恋爱必修课 -〔李一帆〕

深入拆解消息队列47讲 -〔许文强〕

程序员职业规划手册 -〔雪梅〕

好记忆不如烂笔头。留下您的足迹吧 :)