Django集成了一個(gè)分頁(yè)器幫助我們管理數(shù)據(jù)——Paginator
1. 引用
from django.core.paginator import Paginator
2. 使用
i. 實(shí)例化分頁(yè)器,分頁(yè)的對(duì)象列表是ar,每一頁(yè)為5條數(shù)據(jù)。
paginator = Paginator(ar, 5)
ii. 分頁(yè)器里面的所有數(shù)據(jù)的個(gè)數(shù)
paginator.count
iii. paginator分頁(yè)器的所有頁(yè)數(shù)
paginator.num_pages
iv. 導(dǎo)入分頁(yè)器
from django.core.paginator import Paginator
v. 分頁(yè)器中的所有對(duì)象的一個(gè)列表
paginator.object_list
vi. 得到具體的某一頁(yè)
page1 = paginator.get_page(1)
vii. page1是否有下一頁(yè)
page1.has_next()
viii. page1是否有上一頁(yè)
page1.has_previous()
ix. page1的下一頁(yè)的頁(yè)碼
page1.next_page_number()
x. 當(dāng)前頁(yè)碼
page1.number
xi. 得到paginator分頁(yè)器這個(gè)對(duì)象
page1.paginator
xii. 當(dāng)前頁(yè)的對(duì)象列表
page1.object_list
xiii. 基于1的頁(yè)數(shù)范圍迭代器
paginator.page_range
-
異常處理:
????在實(shí)例使用中,用戶請(qǐng)求的頁(yè)面,可能千奇百怪,這就會(huì)有可能導(dǎo)致異常,需要特別處理,Django為我們內(nèi)置了下面幾個(gè)Paginator相關(guān)異常。- exception InvalidPage[source]:異常的基類,當(dāng)paginator傳入一個(gè)無(wú)效的頁(yè)碼時(shí)拋出。
- exception PageNotAnInteger[source]:當(dāng)向page()提供一個(gè)不是整數(shù)的值時(shí)拋出。
- exception EmptyPage[source]:當(dāng)向page()提供一個(gè)有效值,但是那個(gè)頁(yè)面上沒有任何對(duì)象時(shí)拋出。