django进阶-分页

普通分页

定义:

        Django 提供Paginator类可以方便的实现分页功能

        Paginator类位于django.core.paginator

Paginator对象

        对象的构造方法

        paginator = Paginator(object_list,per_page)

        参数

                object_list        需要分页的对象

                per_page        每页数据个数

        返回值

                Paginator的对象

        paginator属性

                -count                需要分页的对象总数

                -num_pages        分页后的页面总数

                -page_range        从1开始的range对象,用于记录当前码数

                -per_page             每页数据的个数

        paginator方法

                paginator对象.page(number)

                        -参数number为页码信息(从1开始)

                        -返回当前值number也对应的页信息

                        -如果提供的页码不存在,抛出InvalidPage异常   

        paginator异常exception

                InvalidPage异常包括

PageNotAnInteger        当向page()传入一个不是整数的值时抛出

EmptyPage                 当向page()传入一个有效值,但是那个页面上没有任何对象时抛出

page对象 

创建对象

        page = paginator.page(页码)

page对象属性

        object_list                当前页上所有数据对象的列表

        number                    当前页的序号,从1开始

        paginator                  当前page对象相关的paginator对象

        has_next()                如果有下一页返回True

        has_previous()          如果有上一夜返回True

        has_other_pages()        如果有上一页或下一页返回True

        next_page_number()        返回下一页的页码,如果下一页不存在,抛出InvalidPage异常

        previous_page_number()        返回上一页的页码,如果上一页不存在,抛出InvalidPage异常

案例: 

from django.core.paginator import Paginator,Page
#  普通分页
def test(request):
    page_num = request.GET.get('page',1)
    # 需要分页的数据
    all_data = ['a','b','c','d','e']
    # 初始化paginator
    paginator = Paginator(all_data,2)
    # 初始化具体页码的对象
    c_page = paginator.page(int(page_num))
    return render(request,'test.html',locals())

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值