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())
原文地址:https://www.cnblogs.com/c491873412/p/7460050.html