Django内置分页

from django.core.paginator import Paginator, PageNotAnInteger, EmptyPage

def index(request):

    current_page = request.GET.get('page')

    user_list = UserInfo.objects.all()
    paginator = Paginator(user_list, 10)
    # per_page: 每页显示条目数量
    # count:    数据总个数
    # num_pages:总页数
    # page_range:总页数的索引范围,如: (1,10),(1,200)
    # page:     page对象

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

    # has_next              是否有下一页
    # next_page_number      下一页页码
    # has_previous          是否有上一页
    # previous_page_number  上一页页码
    # object_list           分页之后的数据列表
    # number                当前页
    # paginator             paginator对象

    return render(request, 'index.html', {'posts':posts})

html:

<ul>
    {% for user in posts.object_list %}
        <li>{{ user.name }}</li>
    {% endfor %}
</ul>
<div>
    {% if posts.has_previous %}
        <a href="/index/?page={{ posts.previous_page_number }}">上一页</a>
    {% endif %}
    
    # 显示所有页码,
    {% for num in posts.paginator.page_range %}
        <a href="/index/?page={{ num }}">{{ num }}</a>
    {% endfor %}

    {% if posts.has_next %}
        <a href="/index/?page={{ posts.next_page_number }}">下一页</a>
    {% endif %}
</div>

 

1

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值