zoukankan      html  css  js  c++  java
  • Django分页

    分页:

    官方文档传送门

    Paginator 类对象的属性:

    Paginator 类对象的方法:

     

    Page 类对象的属性:

    Page 类对象的方法:

     

    实例:

     

     

    官方文档

    分页

    Django提供了一些类来帮助你管理分页的数据 -- 也就是说,数据被分在不同页面中,并带有“上一页/下一页”标签。这些类位于django/core/paginator.py中。

     

    示例

    Paginator提供对象的列表,以及你想为每一页分配的元素数量,它就会为你提供访问每一页上对象的方法:

    注意

    注意你可以向Paginator提供一个列表或元组,Django的QuerySet,或者任何带有count()__len__()方法的对象。当计算传入的对象所含对象的数量时,Paginator会首先尝试调用count(),接着如果传入的对象没有count()方法则回退调用 len()。这样会使类似于Django的QuerySet的对象使用更加高效的 count()方法,如果存在的话。

     

    使用 Paginator

    这里有一些复杂一点的例子,它们在视图中使用 Paginator 来为查询集分页。我们提供视图以及相关的模板来展示如何展示这些结果。这个例子假设你拥有一个已经导入的Contacts模型。

    视图函数看起来像是这样:

    list.html模板中,你会想要包含页面之间的导航,以及来自对象本身的任何有趣的信息:

     

    分页器 objects

    Paginator类拥有以下构造器:

    • class Paginator(object_list, per_page, orphans=0, allow_empty_first_page=True)[source]

       

    所需参数

    • object_list

      A list, tuple, Django QuerySet, or other sliceable object with a count() or __len__() method.

      可以是一个列表, 元组, Django的结果集, 或者是任何一个可以迭代的对象

    • per_page

      The maximum number of items to include on a page, not including orphans (see the orphans optional argument below).

     

    可选参数

    • orphans

      The minimum number of items allowed on the last page, defaults to zero. Use this when you don’t want to have a last page with very few items. If the last page would normally have a number of items less than or equal to orphans, then those items will be added to the previous page (which becomes the last page) instead of leaving the items on a page by themselves. For example, with 23 items, per_page=10, and orphans=3, there will be two pages; the first page with 10 items and the second (and last) page with 13 items.

      在最后一页上允许的最小条目数,默认为零。当你不想要一个只有很少的项目的最后一页时,就用这个。如果最后一页通常有一些小于或等于“孤儿”的条目,那么这些条目将被添加到前一页(这是最后一页),而不是自己将条目放在页面上。例如,有23个条目,“perpage=10”和“孤儿=3”,将有两页;第一个页面有10个条目,第二个(和最后一个)页面有13个条目。

       

    • allow_empty_first_page

      Whether or not the first page is allowed to be empty. If False and object_list is empty, then an EmptyPage error will be raised.

      第一个页面是否被允许为空。如果“False”和“objectlist”是空的,那么就会出现一个“错误”的错误。

     

    方法

    • Paginator.page(number)[source]

      返回在提供的下标处的Page对象,下标以1开始。如果提供的页码不存在,抛出InvalidPage异常。

     

    属性

    • Paginator.count

      所有页面的对象总数。注意当计算object_list所含对象的数量时, Paginator会首先尝试调用object_list.count()。如果object_list没有 count() 方法,Paginator 接着会回退使用len(object_list)。这样会使类似于Django’s QuerySet的对象使用更加便捷的count()方法,如果存在的话。

    • Paginator.num_pages

      页面总数。

    • Paginator.page_range

      页码的范围,从1开始,例如[1, 2, 3, 4]

     

    InvalidPage exceptions

    • exception InvalidPage[source]

      异常的基类,当paginator传入一个无效的页码时抛出。

    Paginator.page()放回在所请求的页面无效(比如不是一个整数)时,或者不包含任何对象时抛出异常。通常,捕获InvalidPage异常就够了,但是如果你想更加精细一些,可以捕获以下两个异常之一:

    • exception PageNotAnInteger[source]

      当向page()提供一个不是整数的值时抛出。

    • exception EmptyPage[source]

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

    这两个异常都是InvalidPage的子类,所以你可以通过简单的except InvalidPage来处理它们。

     

    Page objects

    你通常不需要手动构建 Page对象 -- 你可以从Paginator.page()来获得它们。

    • class Page(object_list, number, paginator)[source]

      当调用len()或者直接迭代一个页面的时候,它的行为类似于 Page.object_list 的序列。

     

    方法

    • Page.has_next()[source]

      如果有下一页,则返回True

    • Page.has_previous()[source]

      如果有上一页,返回 True

    • Page.has_other_pages()[source]

      如果有上一页下一页,返回True

    • Page.next_page_number()[source]

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

    • Page.previous_page_number()[source]

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

    • Page.start_index()[source]

      返回当前页上的第一个对象,相对于分页列表的所有对象的序号,从1开始。比如,将五个对象的列表分为每页两个对象,第二页的start_index()会返回3

    • Page.end_index()[source]

      返回当前页上的最后一个对象,相对于分页列表的所有对象的序号,从1开始。 比如,将五个对象的列表分为每页两个对象,第二页的end_index() 会返回 4

     

    属性

    • Page.object_list

      当前页上所有对象的列表。

    • Page.number

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

     


  • 相关阅读:
    UICollectionView添加 HeaderView FooterView
    Swift-UIDynamic初见
    Swift归档
    通知NSNotication&通知中心NSNoticationCenter
    iOS沙盒
    lldb-320.4.152﹣Debugger commands:
    UIPickerView採摘控件的學習
    hive的优化
    zookeeper简易配置及hadoop高可用安装
    hadoop组件概念理解
  • 原文地址:https://www.cnblogs.com/amou/p/9696006.html
Copyright © 2011-2022 走看看