• Django 分页Paginator的简单用法


    最近的项目中用到了分页功能,用Django自带的Paginator来实现简单的分页。

    第一步,导入Paginator及相关异常模块

    from django.core.paginator import Paginator, PageNotAnInteger, EmptyPage

    Paginator:分页器对象

    PageNotAnInteger:表示传过来的页码不是Integer类型会引发该异常。

    EmptyPage:表示页码不在有效范围时(即页码过大或者过小,数据为空时)会引发该异常。

    第二步,分页功能编写

    其中:data是数据,list类型。start是页数,int类型。limit每页的个数,int类型

    p = Paginator(data, limit)

    p为分页器对象,它的属性包括:

    count:返回对象列表(数据)的长度

    num_pages:返回总页数

    page_range:返回页码列表

    response = {}
        p = Paginator(data, limit)
        try:
            new_data = p.page(start)
        except PageNotAnInteger as e:
            print e
            # 页码不是整数返回第一页
            new_data = p.page(1)
        except EmptyPage as e:
            print e
            total_num = p.num_pages
            if start > total_num:
                # 大于总页码 返回最后一页数据返回
                new_data = p.page(total_num)
            else:
                new_data = p.page(1)
        print new_data, 'new_data'
        response['info'] = new_data.object_list

    new_data为page的一个对象,它的常用属性为:

    • object_list:同样是指对象列表,不过只包含当前页的对象
    • number:当前页面的页码
    • paginator :指对应的分页器对象(Paginator )
  • 相关阅读:
    网页简单模块布局
    Navicat 8 注册密码
    布局黄冈中学
    php导出csv格式文件
    518. 零钱兑换 II
    1813. 句子相似性 III
    ransac算法概述
    c++ 读取文件夹下所有的文件名
    c++ 获取系统时间 写txt string 转 char* 文件改名 文件删除
    1498. 满足条件的子序列数目 二分 快速幂 等比数列前n项和公式
  • 原文地址:https://www.cnblogs.com/wangyingblock/p/11226789.html
Copyright © 2020-2023  润新知