django基础知识之分页:
生活随笔
收集整理的這篇文章主要介紹了
django基础知识之分页:
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
分頁
- Django提供了一些類實現(xiàn)管理數(shù)據(jù)分頁,這些類位于django/core/paginator.py中
Paginator對象
- Paginator(列表,int):返回分頁對象,參數(shù)為列表數(shù)據(jù),每面數(shù)據(jù)的條數(shù)
屬性
- count:對象總數(shù)
- num_pages:頁面總數(shù)
- page_range:頁碼列表,從1開始,例如[1, 2, 3, 4]
方法
- page(num):下標以1開始,如果提供的頁碼不存在,拋出InvalidPage異常
異常exception
- InvalidPage:當向page()傳入一個無效的頁碼時拋出
- PageNotAnInteger:當向page()傳入一個不是整數(shù)的值時拋出
- EmptyPage:當向page()提供一個有效值,但是那個頁面上沒有任何對象時拋出
Page對象
創(chuàng)建對象
- Paginator對象的page()方法返回Page對象,不需要手動構造
屬性
- object_list:當前頁上所有對象的列表
- number:當前頁的序號,從1開始
- paginator:當前page對象相關的Paginator對象
方法
- has_next():如果有下一頁返回True
- has_previous():如果有上一頁返回True
- has_other_pages():如果有上一頁或下一頁返回True
- next_page_number():返回下一頁的頁碼,如果下一頁不存在,拋出InvalidPage異常
- previous_page_number():返回上一頁的頁碼,如果上一頁不存在,拋出InvalidPage異常
- len():返回當前頁面對象的個數(shù)
- 迭代頁面對象:訪問當前頁面中的每個對象
示例
創(chuàng)建視圖pagTest
from django.core.paginator import Paginatordef pagTest(request, pIndex):list1 = AreaInfo.objects.filter(aParent__isnull=True)p = Paginator(list1, 10)if pIndex == '':pIndex = '1'pIndex = int(pIndex)list2 = p.page(pIndex)plist = p.page_rangereturn render(request, 'booktest/pagTest.html', {'list': list2, 'plist': plist, 'pIndex': pIndex})配置url
url(r'^pag(?P<pIndex>[0-9]*)/$', views.pagTest, name='pagTest'),定義模板pagTest.html
<!DOCTYPE html> <html> <head><title></title> </head> <body> <ul> {%for area in list%} <li>{{area.id}}--{{area.atitle}}</li> {%endfor%} </ul>{%for pindex in plist%} {%if pIndex == pindex%} {{pindex}} {%else%} <a href="/pag{{pindex}}/">{{pindex}}</a> {%endif%} {%endfor%} </body> </html>轉載于:https://www.cnblogs.com/huwei934/p/6978727.html
總結
以上是生活随笔為你收集整理的django基础知识之分页:的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 二叉树的建立及递归遍历
- 下一篇: 2017.0612.《计算机组成原理》总