Python3之Django Web框架首页分页处理升级版

本文介绍了一个基于Python的分页功能实现方法,通过使用Paginator类来完成网页上的分页导航功能。利用了has_previous、has_next等方法判断是否还有上一页或下一页,并展示了如何根据当前页数动态生成页面导航。
模板代码:
{#    分页    #}
        <nav aria-label="Page navigation" class="pull-right">
            <ul class="pagination">

                {% if publisher_list.has_previous %}
                    <li>
                        <a href="/CMS/publisherpage/?page={{ publisher_list.previous_page_number }}" aria-label="Previous">
                            <span aria-hidden="true">&laquo;</span>
                        </a>
                    </li>
                {% else %}
                    <li class="disabled">
                        <a href="#" aria-label="Previous">
                            <span aria-hidden="true">&laquo;</span>
                        </a>
                    </li>
                {% endif %}


                {% for page_index in publisher_list.paginator.page_range %}
                    {% if page_num == page_index %}
                        <li class="active"><a href="/CMS/publisherpage/?page={{ page_index }}">{{ page_index }}</a></li>
                    {% else %}
                        <li><a href="/CMS/publisherpage/?page={{ page_index }}">{{ page_index }}</a></li>
                    {% endif %}

                {% endfor %}


                {% if publisher_list.has_next %}
                    <li>
                        <a href="/CMS/publisherpage/?page={{ publisher_list.next_page_number }}" aria-label="Next">
                            <span aria-hidden="true">&raquo;</span>
                        </a>
                    </li>
                {% else %}
                    <li class="disabled">
                        <a href="#" aria-label="Next">
                            <span aria-hidden="true">&raquo;</span>
                        </a>
                    </li>
                {% endif %}


            </ul>
        </nav>
视图函数代码:
 # 分页功能
        paginator = Paginator(publisher_list, 10)
        page_num = request.GET.get('page', 1)
        publisher_list = paginator.page(int(page_num))

        context = {'publisher_list': publisher_list, 'page_num': int(page_num)}

        return render(request, 'publisher.html', context)
readme:
样式用了bootstrap,代码的判断主要使用了paginator的几个方法:

    paginator = Paginator(publisher_list, 10)
    publisher_list = paginator.page(int(page_num))

    publisher_list.previous_page_number()
    publisher_list.next_page_number()
    publisher_list.has_previous()
    publisher_list.has_next()
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值