Django学习笔记:组件-分页器

Django的分页器(paginator)

views.py:

from django.shortcuts import render
from app01.models import Book
from django.core.paginator import Paginator,EmptyPage

def index(request):
    """分页器的使用:"""
    book_list = Book.objects.all()
    paginator = Paginator(book_list, 10)
    
    try:
    	"""抛出异常"""
        current_page_num=request.GET.get("page",1)
        current_page=paginator.page(current_page_num)
        
    except EmptyPage as e:
        current_page_num = 1
        current_page = paginator.page(1)
    return render(request, "index.html",
                  {"current_page": current_page, "paginator": paginator, "current_page_num": int(current_page_num)})

index.html:

<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <!-- 最新版本的 Bootstrap 核心 CSS 文件 -->
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/css/bootstrap.min.css" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous">
</head>
<body>

<ul>
    {% for book in current_page %}
        <li>{{ book.title }} ---- {{ book.price}}</li>
    {% endfor %}

</ul>

<nav aria-label="Page navigation">

  <ul class="pagination">

    {% if current_page.has_previous %}
        <li>
            <a href="?page={{ current_page.previous_page_number }}" aria-label="Previous"><span aria-hidden="true">上一页</span></a>
        </li>
    {% else %}
        <li class="disabled"><a href="">上一页</a></li>
    {% endif %}

    {% for num in paginator.page_range %}
        {% if num == current_page_num %}
            <li class="active"><a href="?page={{ num }}">{{ num }}</a></li>
        {% else %}
            <li>
                <a href="?page={{ num }}">{{ num }}</a>
            </li>
        {% endif %}
      {% endfor %}

    {% if current_page.has_next %}
        <li>
            <a href="?page={{ current_page.next_page_number }}" aria-label="Next"><span aria-hidden="true">下一页</span></a>
        </li>
    {% else %}
        <li class="disabled"><a href="">下一页</a></li>
    {% endif %}

  </ul>
</nav>
</body>
</html>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值