• 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方法

    用分页器只展示11页数据,其他多余的隐藏动态显示


    效果展示

  • 相关阅读:
    gets_s()函数的参数太少,strcpy_s():形参和实参 2 的类型不同,等c函数在Visual Studio上出现的问题, get()函数和scanf()读取字符串的区别,栈的随机性
    线性表的顺序存储实现
    汉诺塔问题, 用递归方法求集合中的中位数
    共用体union
    洛谷3384:【模板】树链剖分——题解
    BZOJ4196:[NOI2015]软件包管理器——题解
    BZOJ3140:[HNOI2013]消毒——题解
    BZOJ1059:[ZJOI2007]矩阵游戏——题解
    洛谷4277:萃香的请柬——题解
    BZOJ1854:[SCOI2010]连续攻击游戏——题解
  • 原文地址:https://www.cnblogs.com/Young-shi/p/15259417.html
Copyright © 2020-2023  润新知