Django分页功能的使用

django提供了分页功能接口,利用Paginator模块实现分页,导入:from django.core.paginator import Paginator

在views.py中添加分页查询方法:

from django.core.paginator import Paginator

def index(request):
    #获取请求参数
    print("这里是index")
    page_number  = request.GET.get('page',1)
    limit  = request.GET.get('limit',5)
    articles = models.Article.objects.all() #19 / 5 [:5] [5:11]
    page = Paginator(articles,limit) #分页后的对象
    articles = page.page(page_number) #当前页的数据
    #page 1 ,size 5

    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

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="/?limit=5&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="/?limit=5&page={{ articles.next_page_number }}">下一页</a>
            {% else %}
                <span class="text-secondary" title="当前页已经是尾页">下一页</span>
            {% endif %}
        </div>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值