zoukankan      html  css  js  c++  java
  • 分页器

    分页器:    
      -干啥的?数据量大的话,可以分页获取,查看
      基本写法:
        后端:
          -总数据拿出来
          -生成分页器Paginator对象(对象里有属性和方法)
          -生成当前页的对象,current_page=paginator.page(当前页码)
          -取出前台传过来的页码,current_page_num = int(request.GET.get('page'))
          -需要有异常捕获
                -捕获到,把当前页码设置成第一页
          前端:
             -for循环总页列表
             -点某一页,跳到指定页码,<li><a href="/index/?page={{ foo }}">{{ foo }}</a></li>
    -上一页,下一页的处理:需要有判断,判断是否有上一页,下一页
        -终极版:
            判断总页码数是否大于11,不大于11,走else:把总页码数,赋给page_range(前端循环页码列表,循环的就是page_range)
            if paginator.num_pages >11:
                当前页码数-5大于1的时候,page_range应该是,page_range就是1到11页?
               if current_page_num-5<1:
                 page_range=range(1,12)
               elif current_page_num+5>paginator.num_pages:
                   当前页码数+5大于总页码数,总页码-10,到总页码+1之间
                  page_range=range(paginator.num_pages-10,paginator.num_pages+1)
          else:
                  其他情况,左5,右6推算,也就是:range(current_page_num - 5, current_page_num + 6)
                page_range = range(current_page_num - 5, current_page_num + 6)
            else:
               小于11,有多少页,就显示多少页
               page_range=paginator.page_range
    批量插入输入: -models.Book.objects.bulk_create(ll)
    from django.core.paginator import Paginator, EmptyPage
    Paginator对象:    paginator = Paginator(user_list, 10)
    # per_page: 每页显示条目数量
    # count:    数据总个数
    # num_pages:总页数
    # page_range:总页数的索引范围,如: (1,10),(1,200)
    # page:     page对象    
    page对象:page=paginator.page(1)
    # has_next              是否有下一页
    # next_page_number      下一页页码
    # has_previous          是否有上一页
    # previous_page_number  上一页页码
    # object_list           分页之后的数据列表
    # number                当前页
    # paginator             paginator对象
    分页器的使用
        book_list=Book.objects.all()
    
        paginator = Paginator(book_list, 10)
    
        print("count:",paginator.count)           #数据总数
        print("num_pages",paginator.num_pages)    #总页数
        print("page_range",paginator.page_range)  #页码的列表
    
    
    
        page1=paginator.page(1) #第1页的page对象
        for i in page1:         #遍历第1页的所有数据对象
            print(i)
    
        print(page1.object_list) #第1页的所有数据
    
    
        page2=paginator.page(2)
    
        print(page2.has_next())            #是否有下一页
        print(page2.next_page_number())    #下一页的页码
        print(page2.has_previous())        #是否有上一页
        print(page2.previous_page_number()) #上一页的页码
    
    
    
        # 抛错
        #page=paginator.page(12)   # error:EmptyPage
    
        #page=paginator.page("z")   # error:PageNotAnInteger
    
    
    
    
    
    
    
    
  • 相关阅读:
    模块在insmod之后无法rmmod问题
    FL2440驱动添加(2): RTC(Real time clock)
    虚拟机安装CentOS6.3两个问题
    内核移植和文件系统制作(3)Ramdisk简介和常见问题
    FL2440驱动添加(1):hello world 驱动模块添加
    内核移植和文件系统制作(2):linux内核最小系统和initramfs文件系统
    内核移植和文件系统制作(1):根文件系统制作总结
    mysql 5.7.16多源复制
    mysql 5.7安装脚本
    二进制方式快速安装MySQL数据库命令集合
  • 原文地址:https://www.cnblogs.com/zhouhao123/p/9990686.html
Copyright © 2011-2022 走看看