Django基础篇--分页

  1. 导入Django自带的分页类

    from django.core.paginator import Paginator

  2. 分页类的使用

    views.py
    
    def index(request):
    
        page_number = int(request.GET.get('page',1))#定义当前展示第几页,默认展示第一页
        limit = int(request.GET.get('limit',5))#定义分页页面展示数量,默认展示五条
        articles = models.Article.objects.all()
        page = Paginator(articles,limit)#分页后的对象
        articles = page.page(page_number)#分页后的内容
    
        print(articles.has_next())  # 有没有下一页
        # print(articles.next_page_number())#下一页的页码,有下一页的话才有
        print(articles.has_other_pages())  # 有没有其他页
        print(articles.has_previous())  # 有没有上一页
        # print(articles.previous_page_number())#上一页的页码
        print(articles.number)  # 当前页的页码
        print(articles.start_index())  # 当前这一页的第一条数据的下标
        print(articles.end_index())  # 当前这一页的最后一条数据的下标
        # articles.paginator #就是上面分页完之后的对象
    
        print(page.num_pages)  # 总共多少页
        print(page.page_range)  # 分页的范围  1 2 3 4
    
        return render(request, 'index.html',
                      {'articles': articles}
                      )
    
  3. 前端代码中使用

    index.html
    
    <div class="text-center mt-2 mt-sm-1 mt-md-0 mb-3 f-16">
                        {% if articles.has_previous %}
                            <a class="text-success" href="?page={{ articles.previous_page_number }}">上一页</a>
                        {% else %}
                            <span class="text-secondary" title="当前页已经是首页">上一页</span>
                        {% endif %}
                        <span class="mx-2">&nbsp;{{ articles.number }}&nbsp;/&nbsp;{{ articles.paginator.num_pages }}&nbsp;</span>
                        {% if articles.has_next %}
                            <a class="text-success" href="?page={{ articles.next_page_number }}">下一页</a>
                        {% else %}
                            <span class="text-secondary" title="当前页已经是尾页">下一页</span>
                        {% endif %}
    
    
                    </div>
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值