阅读 51

Django 分页器 Paginator

分页器要导入的包

from django.core.paginator import Paginator Paginator 就是分页器导入的模块
from django.core.paginator import EmptyPage EmptyPage 是一个错误异常,下面会用到,避免页码被输入无效数字导致的异常

分页器的常用方法

    paginator = Paginator(bks, 7)  #Paginator 添加所有返回的数据对象,和每页展示多少数据的int参数
    paginator.count                # 数据页数
    paginator.num_pages            # 按照上面7条数据分后的总页数
    paginator.page_range           # 页码的列表
-----------------------------------------------------------------------------
    page1 = paginator.page(1)      # 获取第一页的数据对象
    for i in page1:                #遍历page1的所有数据,效果和 object_list 一样,只不过object_list是列表形式
       print(i)


    page1.object_list              #page1的所有数据 列表形式
--------------------------------------------------------------------------------

    page1.has_next()              #是否有下一页
    page1.has_other_pages()       #是否有下一页或者上一页
    page1.has_previous()          #是否有上一页
    page1.next_page_number()      #获取下一页页码 和 has_next一起用
    page1.previous_page_number()   #获取下一页页码 和 has_previous一起用

用分页器分页显示数据的数据

先利用models.object.bulk_create()进行批量插入数据

bk_list=[]
    for i in range(1,100):
        bk = models.test.objects.create(name="python-%i"%(i),price=i,)
        bk_list.append(bk)
    try:
        #不用try会提示primary_key重复,不知道原因在哪里,数据可以正常插入
        models.test.objects.bulk_create(bk_list)
    except Exception:
       pass

效果图

分页展示数据

用分页器展示下面的选择页数

效果图

用分页器展示下面的选择页数添加选中的页数底色添加效果

给选中的当前页数添加class ="active"就行.

效果图

用分页器对于上一页 下一页的条件设定

对于上一页 下一页 要实现 分别会进行页数加减,但是也要实现第一页的时候点击上一页无效,最后一页的时候点击下一页无效
页数加减,可以用蒙版语法的过滤器add实现 上一页就add:-1,下一页就add:1,也可以使用当前页的对象的next_page_number 和previous_page_number方法

原文:https://www.cnblogs.com/Young-shi/p/15259417.html

文章分类
代码人生
版权声明:本站是系统测试站点,无实际运营。本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 XXXXXXo@163.com 举报,一经查实,本站将立刻删除。
相关推荐