<div id="cnblogs_post_body">
分页
Django的分页器(paginator)
view
django.shortcuts <span style="color: #008000;">#<span style="color: #008000;"> Create your views here.
<span style="color: #0000ff;">from app01.models <span style="color: #0000ff;">import *
<span style="color: #0000ff;">from django.core.paginator <span style="color: #0000ff;">import<span style="color: #000000;"> Paginator,EmptyPage,PageNotAnInteger<span style="color: #0000ff;">def<span style="color: #000000;"> index(request):
</span><span style="color: #800000;">'''</span><span style="color: #800000;"> 批量导入数据: Booklist=[] for i in range(100): Booklist.append(Book(title="book"+str(i),price=30+i*i)) Book.objects.bulk_create(Booklist) </span><span style="color: #800000;">'''</span> <span style="color: #800000;">'''</span><span style="color: #800000;">
分页器的使用:
book_list=Book.objects.all() paginator = Paginator(book_list,10) print("count:",paginator.count) #数据总数 print("num_pages",paginator.num_pages) #总页数 print("page_range",paginator.page_range) #<a href="/tag/yema/" target="_blank" class="keywords">页码</a>的列表 page1=paginator.page(1) #第1页的page对象 for i in page1: #遍历第1页的所有数据对象 print(i) print(page1.object_list) #第1页的所有数据 page2=paginator.page(2) print(page2.has_next()) #是否有<a href="/tag/xiayiye/" target="_blank" class="keywords">下一页</a> print(page2.next_page_number()) #<a href="/tag/xiayiye/" target="_blank" class="keywords">下一页</a>的<a href="/tag/yema/" target="_blank" class="keywords">页码</a> print(page2.has_prev<a href="/tag/IoU/" target="_blank" class="keywords">IoU</a>s()) #是否有<a href="/tag/shangyiye/" target="_blank" class="keywords">上一页</a> print(page2.prev<a href="/tag/IoU/" target="_blank" class="keywords">IoU</a>s_page_number()) #<a href="/tag/shangyiye/" target="_blank" class="keywords">上一页</a>的<a href="/tag/yema/" target="_blank" class="keywords">页码</a> # 抛错 #page=paginator.page(12) # error:EmptyPage #page=paginator.page("z") # error:PageNotAnInteger </span><span style="color: #800000;">'''</span><span style="color: #000000;"> book_list</span>=<span style="color: #000000;">Book.objects.all() paginator </span>= Paginator(book_list,10<span style="color: #000000;">) page </span>= request.GET.get(<span style="color: #800000;">'</span><span style="color: #800000;">page</span><span style="color: #800000;">'</span>,1<span style="color: #000000;">) currentPage</span>=<span style="color: #000000;">int(page) </span><span style="color: #0000ff;">try</span><span style="color: #000000;">: </span><span style="color: #0000ff;">print</span><span style="color: #000000;">(page) book_list </span>=<span style="color: #000000;"> paginator.page(page) </span><span style="color: #0000ff;">except</span><span style="color: #000000;"> PageNotAnInteger: book_list </span>= paginator.page(1<span style="color: #000000;">) </span><span style="color: #0000ff;">except</span><span style="color: #000000;"> EmptyPage: book_list </span>=<span style="color: #000000;"> paginator.page(paginator.num_pages) </span><span style="color: #0000ff;">return</span> render(request,<span style="color: #800000;">"</span><span style="color: #800000;">index.html</span><span style="color: #800000;">"</span>,{<span style="color: #800000;">"</span><span style="color: #800000;">book_list</span><span style="color: #800000;">"</span>:book_list,<span style="color: #800000;">"</span><span style="color: #800000;">paginator</span><span style="color: #800000;">"</span>:paginator,<span style="color: #800000;">"</span><span style="color: #800000;">currentPage</span><span style="color: #800000;">"</span>:currentPage})</pre>
<div class="cnblogs_code_toolbar">