django分页技术paginator

分页是Web应用常用的手法,Django提供了一个分页器类Paginator(django.core.paginator.Paginator),可以很容易的实现分页的功能。该类有两个构造参数,一个是数据的集合,另一个是每页放多少条数据。

分页对象Paginator:

只需提供两个必要的参数,第一个就是用于展示的数据(object_list),第二参数就是每页显示的大小(per_page),提供了这两个参数,其他的都好说:

Paginator.count:数据总量

Paginator.num_pages:总共分页数

Paginator.page_range:这是从第一页到最后一页组成的一个列表,比如分页对象总共有10页,那么Paginator.page_range = [1,2,3,4,5,6,7,8,9,10]

Page对象:

Page对象不需要手工构建,通常是由paginator.page()方法获得。Page对象的属性有:

Page.object_list:该页的对象列表

Page.number:该页的页码

Page.paginator:关联的Paginator对象

Page对象还提供了很多的方法:

Page.has_next():是否还有下一页

Page.has_previous():是否还有上一页

Page.has_other_pages():只有含有上一页或者下一页就返回True

Page.next_page_number():下一页的页码

Page.previous_page_number():返回上一页的页码,如果没有就申明InvalidPage异常

Page.start_index():返回当前页的第一条数据的索引

Page.end_index():返回当前页最后一条数据的索引

时间: 2024-12-18 04:16:32

django分页技术paginator的相关文章

django分页技术Paginator(进阶篇)

一.概述 在之前的另一篇博文中介绍了在django中进行分页的两种方法,可是说基本上实现了分页刷新的功能,但存留一个问题,那就是当页数多的时候,会出现所有页码排开的情况,美观性不好不说,更主要的是当页码多的时候,分页栏会变得很长.所以对之前的做法进行重构的同时,也实现了定义分页栏显示页码个数的功能. 最终效果: 本博文旨在深化理解Paginator的使用,当然熟悉后也可以实现"跳转","下5页"类似的功能. 二.Paginator 博文提到,在一个页面中使用多个表,

django分页技术django-pagination和Paginator

转载前还请注明出处:http://blog.csdn.net/gugugujiawei 一.概述 几乎所有的web应用,都需要分页功能,但分页技术总体来说分两种,一种是全部加载,存于浏览器的缓存中,一种是分页访问,部分加载.前一种方法优点是实现简单,在一些对项目要求不多的特定应用上用得较多,可以利用的插件譬如datatables,而后一种方法优点是不会占用服务器太多的缓存,对于数据量大的列表项必须用到这种技术.由于我现在的项目属于管理后台,管理来自成千上万用户的数据,因而只能用到第二种方法.初期

django orm 分页(paginator)取数据出现警告manage.py:1: UnorderedObjectListWarning: Pagination may yield inconsistent results with an unordered object_list: <class 'sign.models.Guest'> QuerySet.

使用django的orm做分页(Paginator)时出现了下面的警告 In [19]: p=Paginator(guest_list,2) manage.py:1: UnorderedObjectListWarning: Pagination may yield inconsistent results with an unordered object_list: <class 'sign.models.Guest'> QuerySet. #!/usr/bin/env python 网上搜的

django分页功能,templatetags的应用

django 将不会将得到的html代码自动转化 from django.utils.html import format_html html =''' <a href='http://www.china.cn'>中国</a>''' format_html(html) django分页 分页功能基本操作 from django.core.import Paginator li=[11,12,13,22,24,25] p=Paginator(li,3) #将li传入,每页显示3条 p

Django -- 分页 -- 批量导入

Django --  分页 分页 Django提供了一些类实现管理数据分页,这些类位于django/core/paginator.py中 Paginator对象 Paginator(列表,int):返回分页对象,参数为列表数据,每面数据的条数 属性 count:对象总数 num_pages:页面总数 page_range:页码列表,从1开始,例如[1, 2, 3, 4] 方法 page(num):下标以1开始,如果提供的页码不存在,抛出InvalidPage异常 异常exception Inva

django 分页组件

一.仿django分页功能自己实现 urls.py 1 2 3 4 5 6 7 8 9 from django.conf.urls import url from django.contrib import admin from app01 import views urlpatterns = [     url(r'^admin/', admin.site.urls),     url(r'^index.html$', views.index),     ] views.py 1 2 3 4

Django 分页查询并返回jsons数据,中文乱码解决方法

一.引子 Django 分页查询并返回 json ,需要将返回的 queryset 序列化, demo 如下: # coding=UTF-8 import os from django.core import serializers from django.core.paginator import Paginator, PageNotAnInteger, EmptyPage from django.shortcuts import render from django.http import

django 分页例子

django 分页例子 安装 python3.6 -m pip install django-pure-pagination==0.3.0 设置 settings.py INSTALLED_APPS = [ 'pure_pagination', ] PAGINATION_SETTINGS = { 'PAGE_RANGE_DISPLAYED': 3, 'MARGIN_PAGES_DISPLAYED': 2, 'SHOW_FIRST_PAGE_WHEN_INVALID': True, } DISPL

Django框架(十五)—— Django分页组件

Django分页组件 一.分页器 数据量大的话,可以分页获取,查看 例如:图书管理中,如果有成千上万本书,要是都在一个页面中渲染出来,会影响页面美观,所以就要用分页器分页渲染 二.分页器的使用 基本写法 基本写法: 后端: 总数据拿出来 生成分页器Paginator对象(对象里有属性和方法) 生成当前页的对象,current_page=paginator.page(当前页码) 取出前台传过来的页码,current_page_num = int(request.GET.get('page')) -