Django Paginator
from django.core.paginator import Paginator, PageNotAnInteger, EmptyPage, InvalidPage
paginator = Paginator(blog_info, 6)
if request.method == "GET":
page = request.GET.get('page')
try:
blogs = paginator.page(page)
except PageNotAnInteger:
blogs = paginator.page(1)
except InvalidPage:
return HttpResponse('找不到页面的内容')
except EmptyPage:
blogs = paginator.page(paginator.num_pages)
return render(request, 'index.html', {'blog_info': blogs})
# /templates/index.html
<div class="row">
<div class="col-12 col-md-4 col-lg-4">
<div class="card-body">
<div class="buttons">
<nav aria-label="Page navigation example">
<ul class="pagination">
{% if blog_info.has_previous %}
<li class="page-item">
<a class="page-link" href="?page={{ blog_info.previous_page_number }}" aria-label="Previous">
<span aria-hidden="true">«</span>
<span class="sr-only">Previous</span>
</a>
</li>
{% endif %}
<li class="page-item"><span class="page-link" >Page {{ blog_info.number }} of {{ blog_info.paginator.num_pages }}</span></li>
{% if blog_info.has_next %}
<li class="page-item">
<a class="page-link" href="?page={{ blog_info.next_page_number }}" aria-label="Next">
<span aria-hidden="true">»</span>
<span class="sr-only">Next</span>
</a>
</li>
{% endif %}
</ul>
</nav>
</div>
</div>
</div>
</div>