分頁顯示

說明:

分頁

? 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) :下標(biāo)以 1 開始,如果提供的頁碼不存在,拋出 InvalidPage 異常

異常 exception

? InvalidPage :當(dāng)向 page()傳入一個無效的頁碼時拋出

? PageNotAnInteger :當(dāng)向 page()傳入一個不是整數(shù)的值時拋出

? EmptyPage :當(dāng)向 page()提供一個有效值,但是那個頁面上沒有任何對象時拋出

Page 對象

創(chuàng)建對象

? Paginator 對象的 page()方法返回 Page 對象,不需要手動構(gòu)造

屬性

? object_list :當(dāng)前頁上所有對象的列表

? number :當(dāng)前頁的序號,從 1 開始

? paginator :當(dāng)前 page 對象相關(guān)的 Paginator 對象

方法

has_next() :如果有下一頁返回 True

? has_previous() :如果有上一頁返回 True
has_other_pages() :如果有上一頁或下一頁返回 True

? next_page_number() :返回下一頁的頁碼,如果下一頁不存在,拋出 InvalidPage 異常

? previous_page_number() :返回上一頁的頁碼,如果上一頁不存在,拋出 InvalidPage異常

? len() :返回當(dāng)前頁面對象的個數(shù)

? 迭代頁面對象:訪問當(dāng)前頁面中的每個對象

示例
1:創(chuàng)建分頁視圖

def logined_index(request, pindex):
    # return HttpResponse("index")
    articlelist = Article.objects.all()
    p = Paginator(articlelist, 2)  # 按照每頁兩條進(jìn)行分頁
    if pindex == "":
        pindex = 1
    pindex = int(pindex)
    # 構(gòu)造page對象
    page = p.page(pindex)
    # 得到頁碼列表
    plist = p.page_range

    username = request.session.get("username")
    user = User.objects.get(pk=13)
    # print(user.header.url)
    # return render(request, 'pianke/logined_index.html', {'portrait': user.portrait})
    context = {
        "username": username,
        "articlelist": page,
        "portrait": user.portrait,
        # "article": page,
        "plist": plist,
        "request": request,
        "pIndex": pindex,
    }
    return render(request, "pianke/logined_index.html", context)

2:配置url

3:分頁展示

  <div class="article">
                {% for item in articlelist %}

                    <div class="detail-intro">
                         <div class="detail-title">
                         <a href="{% url 'pianke:article_detail'%}">{{item.title}}</a>
                         </div>
                        <div class="article-author"><a href="../../pages/user/user.html?uid=1176989" >
                            By&nbsp;/&nbsp;{{item.author.username}}</a></div>
                        <hr style="color: #0f0f0f; width: 100px; margin-left: 20px; margin-top: 20px">
                         <div class="detail-article-intro">
                         {{item.content|truncatechars_html:100 }}
                         </div>

                        <div class="article-others">{{item.visit_num}} k次閱讀&nbsp;&nbsp;|&nbsp;&nbsp;評論:{{item.likes}}
                            &nbsp;&nbsp;|&nbsp;&nbsp;喜歡:{{item.likes}} </div>
                    </div>
                {% endfor %}

                {% for pindex in plist %}

                        {% if pIndex == pindex %}

                             {{ pindex }}&nbsp;&nbsp;

                        {% else %}

                             <a href="/pianke/logined_index/{{ pindex }}/">{{ pindex }}</a>&nbsp;&nbsp;

                        {% endif %}
                {% endfor %}
            </div>
          </div>
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

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

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