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>