在Django中实现分页

django自带名为paginator的分页工具
paginator类的作用是将我们分页的数据分割成若干份,当我们实例化一个paginator类的实例时,需要给paginator传入两个参数,第一个参数是数据源 ,可以是一个列表,元祖,以及查询结果集第二个参数需要传入一个整数,表示每页显示数据条数

paginator类中有三个常用的属性,分别是:
count :表示所有页面的对象总数
num_pages:表示页面总数
page_range:下表从1开始的页数范围迭代器

Page对象:
Paginator类提供一个page(number)函数,该函数返回就是一个Page对象,参数number表示第几个分页,
如果number=1,那么page()返回的对象时第一分页的Page对象,在前端页面中显示数据,我们主要的操作都是基于Page
Page对象的

books = paginatorpage(1)

if request.method == "GET":
        # 获取 url 后面的 page 参数的值, 首页不显示 page 参数, 默认值是 1
        page = request.GET.get('page')
        try:
            books = paginator.page(page)
        #  注意捕获异常
        except PageNotAnInteger:
            # 如果请求的页数不是整数, 返回第一页。
            books = paginator.page(1)
        except InvalidPage:
            # 如果请求的页数不存在, 重定向页面
            return HttpResponse('找不到页面的内容')
        except EmptyPage:
            # 如果请求的页数不在合法的页数范围内,返回结果的最后一页。
            books = paginator.page(paginator.num_pages)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值