zoukankan      html  css  js  c++  java
  • 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页数据,其他多余的隐藏动态显示


    效果展示

  • 相关阅读:
    Python 中lambda 简单介绍
    关于python中带下划线的变量和函数 的意义
    Python 类的方法,下划线有什么不同?
    Python中用format函数格式化字符串的用法(2.7版本讲解哦!)
    如何理解 Python 中的__init__
    Python引用多个模块,调用模块中的函数时,要注意的地方
    Python tips: 什么是*args和**kwargs?
    如何简单地理解Python中的if __name__ == '__main__'
    NLP点滴——文本相似度
    马里奥AI实现方式探索 ——神经网络+增强学习
  • 原文地址:https://www.cnblogs.com/Young-shi/p/15259417.html
Copyright © 2011-2022 走看看