Django的页面分页

操作流程

  1. 设置views方法,并链接到html中
  2. 在html中显示

1.views方法

在app项目中设定函数:主要设定展示每页多少信息,切换当前页数

def a(request):
    if request.method == 'GET':
        #表示获得html中翻页的页数是多少,默认是第一页
        a = int(request.GET.get('pag_id',1)
        #得到所有的信息
        stu = XXX.objects.all()
        #信息每页展示3个
        p = Paginator(stu,3)
        #当前是多少页
        pp = pangina.page(a)

        return render(request,'xxxx.html',{'stu':pp})

2.Html中的方法

在html中重点运用Paginator对象和page对象

paginator对象

1.总页数

.num_pages

2.总共有多少信息

count

3.分页信息——每页都显示出来,因此需要用for in循环来获取

page_range

下面结合起来写

<h4>一共{{ stu.paginator.num_pages }}{{ stu.paginator.count }}条信息</h4>
{%  for a in stu.paginator.page_range %}#循环展示一共多少信息 且设定为pag_id 在views中可以调用
    <a href="/st/pag/?pag_id={{ a }}">{{ a }}</a>
{% endfor %}

page对象

由于app方法中引入的就是page对象因此直接调用即可
1.判断是否有下一页

has_next

2.跳转到下一页

next_page_number

3.判断是否有上一页

has_previous

4.跳转到上一页

previoius_page_number

5.当前页数

number

下面一共展示出上下页面切点击后获得pag_id给views中使用,然后显示当前页面

{% if stu.has_previous %}
    <a href="/st/pag/?pag_id={{ stu.previous_page_number }}">上一页</a>
{% endif %}
当前第{{ stu.number }}{% if stu.has_next %}
    <a href="/st/pag/?pag_id={{ stu.next_page_number }}">下一页</a>
{% endif %}

猜你喜欢

转载自blog.csdn.net/qq_41781877/article/details/80173299
今日推荐