Django学习笔记十六:列表分页功能开发

这篇博客介绍了如何在Django项目中利用paginator类实现列表分页功能,详细讲解了在views.py文件中的修改方法以及在guest_manage.html中添加分页器的步骤,展示了最终的分页效果。
摘要由CSDN通过智能技术生成

按照之前的笔记添加一个嘉宾管理,在此不重复说明。

在django中使用paginator类来实现分类功能。修改../sign/views.py文件

#导入类
from django.core.paginator import Paginator, EmptyPage, PageNotAnInteger

def guest_search_name(request):
    username = request.session.get('user', '')
    guest_search_name = request.GET.get("realname", "")
    guest_list = Guest.objects.filter(realname__contains=guest_search_name)

    paginator = Paginator(guest_list, 2)      #创建每页2条数据的分页器
    page = request.GET.get('page')          #通过get请求得到当前要显示的第几页数据
    try:
        contacts = paginator.page(page)      #获取第page页的数据,如果没有抛出异常
    except PageNotAnInteger:
        # 如果page页不是整数,取第1页数据
        contacts = paginator.page(1)
    except EmptyPage:
        # 如果page不在范围,取最后1页数据
        contacts = paginator.page(paginator.num_pages)
    return render(request, "guest_manage.html", {"user": username, "guests": contacts})

在guest_manage.html中添加列表分页器:

    <!-- 列表分页器 -->
    <div class="pagination">
      <span class="step-links">
        {% if guests.has_previous %}
          <a href="?page={{ guests.previous_page_number }}">上一页</a>
        {% endif %}
          <span class="current">
            第 {{ guests.number }} 页,共 {{ guests.paginator.num_pages }} 页
          </span>
        {% if guests.has_next %}
          {% if phone %}
            <a href="?page={{ guests.next_page_number }}">下一页</a>
          {% else %}
           <a href="?page={{ guests.next_page_number }}">下一页</a>
          {% endif %}
        {% endif %}
      </span>
    </div>

效果如下:



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值