Django 内置分页的写法

Django 内置分页写法

后端写法

def test2(request):
    # for i in range(300):
    #     name = "root" + str(i)
    #     models.UserInfo.objects.create(name=name, age=18)

    cur_page = request.GET.get('cur_page')  ### 1

    userlist = models.UserInfo.objects.all()

    from django.core.paginator import Paginator

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

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

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

前端写法

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title>Title</title>
</head>
<body>
<ul>

    {% for user in users.object_list %}
        <li>{{ user.name }}</li>
    {% endfor %}

    {% if users.has_previous %}
        <a href="/test2/?cur_page={{ users.previous_page_number }}">上一页</a>
    {% endif %}

    {% for num in users.paginator.page_range %}
        <a href="/test2/?cur_page={{ num }}">{{ num }}</a>
    {% endfor %}

    {% if users.has_next %}
        <a href="/test2/?cur_page={{ users.next_page_number }}">下一页</a>
    {% endif %}

</ul>
</body>
</html>
posted @ 2019-08-15 17:02  『侠客行』  阅读(230)  评论(0编辑  收藏  举报