Django-分页-内置

View文件


# 分页
def index2(req):
    from django.core.paginator import Paginator, Page, PageNotAnInteger, EmptyPage

    cur_page = req.GET.get('page')
    user_list = models.UserInfo.objects.all()
    paginator = Paginator(user_list, 10)   # 分页对象
    # per_page 每页数目
    # count 数据个数
    # num_pages 总页数
    # page_range 页数范围
    # page page对象
    print(paginator.per_page, paginator.page_range,paginator.count)
    print(paginator.num_pages)
    try:
        posts = paginator.page(cur_page)
        print(posts.has_previous(), posts.previous_page_number(), posts.has_next(), posts.next_page_number())

    except PageNotAnInteger as e:
        posts = paginator.page('1')
    except EmptyPage as e:
        posts = paginator.page('1')

    return render(req, 'index2.html',{'posts':posts})

模板

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

    <div>
        <!-上一页->
        {% if posts.has_previous %}
            <a href="/app01/index2/?page={{ posts.previous_page_number }}">pre</a>
        {% endif %}

        {#中间页码#}
        {% for num in posts.paginator.page_range %}
            <a href="/app01/index2/?page={{ num }}">{{ num }}</a>
        {% endfor %}

        <!-下一页->
        {% if posts.has_next %}
            <a href="/app01/index2/?page={{ posts.next_page_number }}">next</a>
        {% endif %}
    </div>
</body>
</html>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值