Django 使用Paginator分页

本文详细介绍了Django框架中Paginator组件的使用方法,包括如何实现数据分页、页面跳转、异常处理以及获取页面信息等关键操作,是理解和应用Django分页功能的实用指南。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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页内从一开始数最后一个对象

 

转载于:https://www.cnblogs.com/dayouzi/p/10130419.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值