django-分页:Paginator

py代码:

from django.shortcuts import render,HttpResponse,redirect

# Create your views here.

from .models import *
from django.core.paginator import Paginator,EmptyPage, PageNotAnInteger

def index(request):

    '''
        批量导入数据:
        for i in range(100):
        Book.objects.create(title="book"+str(i),price=i*4)

        bookList=[]
        for i in range(100):
            book=Book(title="book"+str(i),price=i*4)
            bookList.append(book)

    Book.objects.bulk_create(bookList)

    :param request:
    :return:
    '''
    book_list = Book.objects.all()
    paginator = Paginator(book_list, 2)
    try:


        #  paginator对象三个属性
        print(paginator.count)  # Paginator
        print(paginator.num_pages)  # 13
        print(paginator.page_range)  # range(1, 14)

        # 具体页对象
        num = request.GET.get("page", 1)
        num = int(num)
        page = paginator.page(num)
        '''
        print(page.has_next())            #是否有下一页
        print(page.next_page_number())    #下一页的页码
        print(page.has_previous())        #是否有上一页
        print(page.previous_page_number()) #上一页的页码
        '''
        # print("===========",page.next_page_number())
        # print("===========",page.previous_page_number())


    except Exception:
        page=paginator.page(1)

    book_list = page.object_list
    return render(request,"index.html",locals())

html代码:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <!-- 新 Bootstrap 核心 CSS 文件 -->
    <link rel="stylesheet" href="//cdn.bootcss.com/bootstrap/3.3.5/css/bootstrap.min.css">
</head>
<body>


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

</ul>

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

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


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



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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值