美文网首页
分页显示

分页显示

作者: 流蓝浅 | 来源:发表于2018-04-18 16:03 被阅读0次

    说明:

    分页

     Django 提供了一些类实现管理数据分页,这些类位于 django/core/paginator.py 中

    Paginator 对象

     Paginator(列表,int) :返回分页对象,参数为列表数据,每面数据的条数

    属性

     count :对象总数

     num_pages :页面总数
    page_range :页码列表,从 1 开始,例如 [1, 2, 3, 4]

    方法

     page(num) :下标以 1 开始,如果提供的页码不存在,抛出 InvalidPage 异常

    异常 exception

     InvalidPage :当向 page()传入一个无效的页码时抛出

     PageNotAnInteger :当向 page()传入一个不是整数的值时抛出

     EmptyPage :当向 page()提供一个有效值,但是那个页面上没有任何对象时抛出

    Page 对象

    创建对象

     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() :返回当前页面对象的个数

     迭代页面对象:访问当前页面中的每个对象

    示例
    1:创建分页视图

    def logined_index(request, pindex):
        # return HttpResponse("index")
        articlelist = Article.objects.all()
        p = Paginator(articlelist, 2)  # 按照每页两条进行分页
        if pindex == "":
            pindex = 1
        pindex = int(pindex)
        # 构造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>
    

    相关文章

      网友评论

          本文标题:分页显示

          本文链接:https://www.haomeiwen.com/subject/mjavkftx.html