Django页面分页设置

Django在访问数据库后会将数据显示在界面上!但是当数据过多的时候我们就需要将其分页显示,如下图效果

这里写图片描述

导入需要django分页需要的包

from django.core.paginator import *

创建视图,并查询数据库

#用于分页练习
def herolist(request,index=1):
    # 这个查询指定数据库中所有的数据
    list = HeroInfo.objects.all()
    # 将数据每5个设置为一页
    paginator = Paginator(list,5)
    #得到当前的页面数据
    page = paginator.page(index)

    # 获取当前页面数,这里是传过来的index
    currentPage = int(index)
    # 下面这段逻辑是保证标签始终是5个,所选的标签在中间
    if currentPage<3:
        pageRange = range(1, 6)
    elif currentPage>paginator.num_pages-3:
        pageRange = range(paginator.num_pages-4, paginator.num_pages+1)
    else:
        pageRange = range(currentPage-2,currentPage+3)
    #将数据封装传到模板中    
    context = {'page': page, 'pageRange': pageRange}
    return render(request, 'booktest/herolist.html', context)

创建模板来展示

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<ul>
{% for hero in page%}
<li>{{hero.hname}}</li>
{% endfor %}

</ul>
{%for index  in pageRange %}
<a href="/herolist/{{index}}">{{index}}</a>
{% endfor%}
<hr>
</body>
</html>
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值