Django分页
book_list_all=Book.objects.all() paginator=Paginator(book_list_all,10) book_list=paginator.page(page_num) #第几页数的数据对象 paginator.page(1).object_list #第一页图书的数据对象 paginator.num_pages #最后一页 paginator.page_range #分页的范围 book_list.next_page_number #书的下一页 book_list.previous_page_number #书的上一页
Template:
{% load staticfiles %}
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<link rel="stylesheet" href={% static 'dist/css/bootstrap.css' %}>
<script src={% static 'dist/js/jquery-3.2.1.js' %}></script>
<style>
.active {
background-color: #2aabd2;
color:white;
}
</style>
</head>
<body>
<div class="container">
<ul>
{% for book in book_list %}
<li>{{ book.title }} {{ book.price }}</li>
{% endfor %}
</ul>
</div>
<ul class="pagination">
{% if book_list.has_previous %}
<li class="previous"><a href="/?page={{ book_list.previous_page_number }}">上一页</a></li>
{% else %}
<li class="previous disabled"><a href="#">上一页</a></li>
{% endif %}
{% for num in paginator.page_range %}
<li><a href="/?page={{ num }}">{{ num }}</a></li>
{% endfor %}
{% if book_list.has_next %}
<li class="next"><a href="{{ book_list.next_page_number }}">下一页</a></li>
{% else %}
<li class="next disabled"><a href="#">下一页</a></li>
{% endif %}
</ul>
</body>
</html>
View视图:
from django.shortcuts import render,HttpResponse from app01.models import * from django.core.paginator import Paginator,PageNotAnInteger,EmptyPage # Create your views here. def createbook(request): # book_list=[] # for i in range(100): # book_list.append(Book(title='book%s'%i,price=10+i*i)) # Book.objects.bulk_create(book_list) book_list_all=Book.objects.all() paginator=Paginator(book_list_all,10) print("第一页数据",paginator.page(1).object_list) page_num=request.GET.get("page") try: book_list=paginator.page(page_num) except PageNotAnInteger: book_list=paginator.page(1) except EmptyPage: book_list=paginator.page(paginator.num_pages) return render(request,"index.html",locals())


浙公网安备 33010602011771号