zoukankan      html  css  js  c++  java
  • Django 使用Paginator分页

    from django.core.paginator import Paginator, EmptyPage, PageNotAnInteger    
            subclass_s = models.subclass_details.objects.all() #查询数据获取一个列表
            paginator = Paginator(subclass_s,2)  #使用Paginator对列表进行分页,我每页行数设置是2
            page = request.GET.get('page') #网页使用列如127.0.0.1:8000?page=1 获取请求的页数
            try:
                page = int(page) #我设置了用户在前端输入页码跳转,保证用户输入的是数字
            except:
                page = 1 #输入非数字跳转第一页
            if page == None : # 没有输入跳转第一页
                page = 1 try:
                subclass_s = paginator.page(page) #这里是进行跳转的操作
            except PageNotAnInteger:
                subclass_s = paginator.page(1) #如果输入是错误的跳转第一页
            except EmptyPage: #如果输入的超出页码数跳转最后一页
                subclass_s = paginator.page(paginator.num_pages)
            return render(request,'xproject/subclass_details.html',locals())

    Paginator的一些操作方法

     1 subclass_s = models.subclass.objects.all()
     2 s = Paginator(subclass_s,10)
     3 
     4 s.count #总对象,即列表里面的对象总数
     5 
     6 s.num_pages #总页码数
     7 
     8 p.page(num) #获取第num页
     9 
    10 p.page(num).object_list #获取第num页里面的数据并以列表的形式显示
    11 
    12 p.page(num).has_next() #判断num页当前是否有下一页
    13 
    14 p.page(num).hhas_previous() #判断num页当前是否有上一页
    15 
    16 p.page(num).has_other_pages() #判断num页是否有其他页
    17 
    18 p.page(num).next_page_number() #获取下一页的页码
    19 
    20 p.page(num).previous_page_number() #获取上一页的页码
    21 
    22 p.page(num).start_index() #num页内从一开始数第一个对象
    23 
    24 p.page(num).end_index() #num页内从一开始数最后一个对象
  • 相关阅读:
    vue绑定值与字符串拼接两种写法
    cmd 总是很卡,执行一条指令就卡死
    生产工具vscode
    js 关于 array 的相关操作––
    webAssembly
    github上fork别人的分支到目录下  
    68.Promise和setTimeout的区别
    67、Promise 构造函数是同步执行还是异步执行,那么 then 方法呢?
    66、深入理解 promise:promise的三种状态与链式调用
    65.ES6新的特性有哪些?
  • 原文地址:https://www.cnblogs.com/dayouzi/p/10130419.html
Copyright © 2011-2022 走看看