django - 分頁


包:django.core.paginator

Paginator對(duì)象
  • Paginator(列表,int):返回分頁對(duì)象,參數(shù)為列表數(shù)據(jù),每頁數(shù)據(jù)的條數(shù)
屬性
  • count:對(duì)象總數(shù)
  • num_pages:頁面總數(shù)
  • page_range:頁碼列表,從1開始,例如[1, 2, 3, 4]
方法
  • page(num):下標(biāo)以1開始,如果提供的頁碼不存在,拋出InvalidPage異常
異常exception
  • InvalidPage:當(dāng)向page()傳入一個(gè)無效的頁碼時(shí)拋出
  • PageNotAnInteger:當(dāng)向page()傳入一個(gè)不是整數(shù)的值時(shí)拋出
  • EmptyPage:當(dāng)向page()提供一個(gè)有效值,但是那個(gè)頁面上沒有任何對(duì)象時(shí)拋出
Page對(duì)象
創(chuàng)建對(duì)象
  • Paginator對(duì)象的page()方法返回Page對(duì)象,不需要手動(dòng)構(gòu)造
屬性
  • object_list:當(dāng)前頁上所有對(duì)象的列表
  • number:當(dāng)前頁的序號(hào),從1開始
  • paginator:當(dāng)前page對(duì)象相關(guān)的Paginator對(duì)象
方法
  • has_next():如果有下一頁返回True
  • has_previous():如果有上一頁返回True
  • has_other_pages():如果有上一頁或下一頁返回True
  • next_page_number():返回下一頁的頁碼,如果下一頁不存在,拋出InvalidPage異常
  • previous_page_number():返回上一頁的頁碼,如果上一頁不存在,拋出InvalidPage異常
  • len():返回當(dāng)前頁面對(duì)象的個(gè)數(shù)
  • 迭代頁面對(duì)象:訪問當(dāng)前頁面中的每個(gè)對(duì)象
例子
  • view
def hero_list(request, pindex):
    if pindex == '':
        pindex = '1'
    heroinfo_list = HeroInfo.objects.all()
    paginatior = Paginator(heroinfo_list, 5)
    page = paginatior.page(int(pindex))
    context = {'page': page}
    return render(request, 'booktest/herolist.html', context)
  • templates
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<ul>
{% for hero in page %}
<li>{{ hero.h_name }}</li>
{% endfor %}
</ul>
<hr/>
{% for index in page.paginator.page_range %}
    {% if index == page.number %}
        {{ index }}
    {% else %}
    <a href="/heroList/{{ index }}">{{ index }}</a>
    {% endif %}
{% endfor %}
</body>
</html>
image.png
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 方法一:使用pure_pagination進(jìn)行分頁 1. pure_pagination介紹 pure_pagin...
    Jlan閱讀 1,189評(píng)論 0 7
  • 我們先在 shell 中演示分頁器的用法: 分頁器示例 現(xiàn)在我們?cè)?view 中使用分頁器: 瀏覽器打開:http...
    SingleDiego閱讀 1,684評(píng)論 2 3
  • Django中已經(jīng)實(shí)現(xiàn)了很多功能,基本上只要我們需要的功能,都能夠找到相應(yīng)的包。要在Django中實(shí)現(xiàn)分頁顯示,只...
    leyu閱讀 566評(píng)論 0 2
  • 分頁顯示 步驟:獲取當(dāng)前頁---獲取總數(shù)據(jù)---獲取分的總頁數(shù)--每頁顯示的條數(shù)---構(gòu)建Paganitor對(duì)象,...
    a荷包蛋閱讀 260評(píng)論 0 0
  • 1:在list.html中增加bootstrap分頁代碼 2:增加樣式,使分頁列表居中 3:修改views.py文...
    天涯笨熊閱讀 1,543評(píng)論 0 1

友情鏈接更多精彩內(nèi)容