普通分頁(yè)
定義:
? ? ? ? Django 提供Paginator類可以方便的實(shí)現(xiàn)分頁(yè)功能
????????Paginator類位于django.core.paginator
Paginator對(duì)象
????????對(duì)象的構(gòu)造方法
? ? ? ? paginator = Paginator(object_list,per_page)
? ? ? ? 參數(shù)
????????????????object_list? ? ? ? 需要分頁(yè)的對(duì)象
????????????????per_page? ? ? ? 每頁(yè)數(shù)據(jù)個(gè)數(shù)
? ? ? ? 返回值
????????????????Paginator的對(duì)象
????????paginator屬性
????????????????-count? ? ? ? ? ? ? ? 需要分頁(yè)的對(duì)象總數(shù)
????????????????-num_pages? ? ? ? 分頁(yè)后的頁(yè)面總數(shù)
????????????????-page_range? ? ? ? 從1開(kāi)始的range對(duì)象,用于記錄當(dāng)前碼數(shù)
????????????????-per_page? ? ? ? ? ? ?每頁(yè)數(shù)據(jù)的個(gè)數(shù)
????????paginator方法
????????????????paginator對(duì)象.page(number)
? ? ? ? ? ? ? ? ? ? ? ? -參數(shù)number為頁(yè)碼信息(從1開(kāi)始)
? ? ? ? ? ? ? ? ? ? ? ? -返回當(dāng)前值number也對(duì)應(yīng)的頁(yè)信息
? ? ? ? ? ? ? ? ? ? ? ? -如果提供的頁(yè)碼不存在,拋出InvalidPage異常? ?
? ? ? ? paginator異常exception
????????????????InvalidPage異常包括
PageNotAnInteger? ? ? ? 當(dāng)向page()傳入一個(gè)不是整數(shù)的值時(shí)拋出
EmptyPage? ? ? ? ? ? ? ? ?當(dāng)向page()傳入一個(gè)有效值,但是那個(gè)頁(yè)面上沒(méi)有任何對(duì)象時(shí)拋出
page對(duì)象?
創(chuàng)建對(duì)象
? ? ? ? page = paginator.page(頁(yè)碼)
page對(duì)象屬性
? ? ? ? object_list? ? ? ? ? ? ? ? 當(dāng)前頁(yè)上所有數(shù)據(jù)對(duì)象的列表
? ? ? ? number? ? ? ? ? ? ? ? ? ? 當(dāng)前頁(yè)的序號(hào),從1開(kāi)始
? ? ? ? paginator? ? ? ? ? ? ? ? ? 當(dāng)前page對(duì)象相關(guān)的paginator對(duì)象
? ? ? ? has_next()? ? ? ? ? ? ? ? 如果有下一頁(yè)返回True
? ? ? ? has_previous()? ? ? ? ? 如果有上一夜返回True
? ? ? ? has_other_pages()? ? ? ? 如果有上一頁(yè)或下一頁(yè)返回True
? ? ? ? next_page_number()? ? ? ? 返回下一頁(yè)的頁(yè)碼,如果下一頁(yè)不存在,拋出InvalidPage異常文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-620622.html
? ? ? ? previous_page_number()????????返回上一頁(yè)的頁(yè)碼,如果上一頁(yè)不存在,拋出InvalidPage異常文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-620622.html
案例:?
from django.core.paginator import Paginator,Page
# 普通分頁(yè)
def test(request):
page_num = request.GET.get('page',1)
# 需要分頁(yè)的數(shù)據(jù)
all_data = ['a','b','c','d','e']
# 初始化paginator
paginator = Paginator(all_data,2)
# 初始化具體頁(yè)碼的對(duì)象
c_page = paginator.page(int(page_num))
return render(request,'test.html',locals())
到了這里,關(guān)于django進(jìn)階-分頁(yè)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!