django分页器paginator使用简单说明

Django之分页功能

Django提供了一个新的类来帮助你管理分页数据,这个类存放在django/core/paginator.py.它可以接收列表、元组或其它可迭代的对象。

基本语法

class Paginator(object):
 
    def __init__(self, object_list, per_page, orphans=0,
                 allow_empty_first_page=True):
        self.object_list = object_list
        self.per_page = int(per_page)
        self.orphans = int(orphans)
        self.allow_empty_first_page = allow_empty_first_page
 
……

基本语法实例

#!/usr/bin/env python
# _*_ coding:utf-8 _*_
 
import os
 
from django.core.paginator import Paginator
objects = [‘john‘,‘paul‘,‘george‘,‘ringo‘,‘lucy‘,‘meiry‘,‘checy‘,‘wind‘,‘flow‘,‘rain‘]<br>
p = Paginator(objects,3)  # 3条数据为一页,实例化分页对象
print p.count  # 10 对象总共10个元素
print p.num_pages  # 4 对象可分4页
print p.page_range  # xrange(1, 5) 对象页的可迭代范围
 
page1 = p.page(1)  # 取对象的第一分页对象
print page1.object_list  # 第一分页对象的元素列表[‘john‘, ‘paul‘, ‘george‘]
print page1.number  # 第一分页对象的当前页值 1
 
page2 = p.page(2)  # 取对象的第二分页对象
print page2.object_list  # 第二分页对象的元素列表 [‘ringo‘, ‘lucy‘, ‘meiry‘]
print page2.number  # 第二分页对象的当前页码值 2
 
print page1.has_previous()  # 第一分页对象是否有前一页 False
print page1.has_other_pages()  # 第一分页对象是否有其它页 True
 
print page2.has_previous()  # 第二分页对象是否有前一页 True
print page2.has_next()  # 第二分页对象是否有下一页 True
print page2.next_page_number()  # 第二分页对象下一页码的值 3
print page2.previous_page_number()  # 第二分页对象的上一页码值 1
print page2.start_index()  # 第二分页对象的元素开始索引 4
print page2.end_index()  # 第2分页对象的元素结束索引 6

在视图中的应用

from django.core.paginator import Paginator, InvalidPage,EmptyPage,PageNotAnInteger
from django.shortcuts import render
 
def listing(request):
    try:
        article_list = Article.objects.all()                #获取文章数据
        paginator = Paginator(article_list,3)               #创建分页对象,每页显示5个
        try:
            page = int(request.GET.get(‘page‘,1))           #获取分页当前页,如果客户没有传任何数据,则默认为1
            article_list = paginator.page(page)
        except (EmptyPage,InvalidPage,PageNotAnInteger):
            article_list = paginator.page(1)

    except Exception as e:
        logger.error(e)
    return render(request, "index.html", locals())           #locals是一个函数,包含当前作用域所有变量对象

前端配置:

在template的html模板中的应用

{% %}

  
    {{ .}}
    {{ .}}
    {% ..%}{{ .}}{% %}{{ .}}浏览({{ .}})评论({{ ...}})
  

{% %}
    
    {% .%}
    {{ .}}上一页
    {% %}
    上一页
    {% %}
     {{ .}}/{{ ..}}
    {% .%}
      {{ .}}下一页 
    {% %}
      下一页 
    {% %}
时间: 2024-10-06 17:20:59

django分页器paginator使用简单说明的相关文章

Django分页器(paginator)组件

Django分页器(paginator)组件 from django.core.paginator import Paginator from django.core.paginator import Paginator 先拿到分页器对象 paginator = Paginator(book_list,3) 第一个参数:对象列表,第二个参数:每页显示的条数 paginator.count 总条数 paginator.num_pages 总页数 paginator.page_range 页码数列表

django 的分页器Paginator ,从django中导入类

先创建表,然后生成批量数据. 在models文件里 from django.db import models # Create your models here. class Book(models.Model): name = models.CharField(max_length=32) price = models.DecimalField(max_digits=5,decimal_places=2) 然后执行python manage.py makemigrations   ,pytho

django分页 Paginator

分页功能是几乎所有的网站上都需要提供的功能,当你要展示的条目比较多时,必须进行分页,不但能减小数据库读取数据压力,也有利于用户浏览. Django又很贴心的为我们提供了一个Paginator分页工具,但是不幸的是,这个工具功能差了点,不好添加CSS样式,所以前端的展示效果比较丑.如果你能力够,自己编写一个分页器,然后提交给Django官方吧,争取替代掉这个当前的分页器,我看好你哦! 但不管怎么样,当前的Paginator分页器,还是值得学一下用一下的. 一.实例展示 向Paginator提供包含

【前端】Django分页器

一.分页器(paginator) 分页器的使用 >>> from django.core.paginator import Paginator >>> objects = ['john', 'paul', 'george', 'ringo'] >>> p = Paginator(objects, 2) >>> p.count #数据总数 4 >>> p.num_pages #总页数 2 >>> ty

Django分页器

一 Django的分页器(paginator)简介 在页面显示分页数据,需要用到Django分页器组件,Django提供了一些类来帮助您管理分页数据 - 即分布在多个页面上的数据,带有"上一页/下一页"链接 示例 >>> from django.core.paginator import Paginator >>> objects = ['john', 'paul', 'george', 'ringo'] >>> p = Pagin

Django分页器及自定义分页器

Django的分页器 view from django.shortcuts import render,HttpResponse # Create your views here. from app01.models import * from django.core.paginator import Paginator, EmptyPage, PageNotAnInteger def index(request): ''' 批量导入数据: Booklist=[] for i in range(

django -----分页器组件

1 Django的分页器(paginator)简介 2 应用View层 3 模版层 index.html 4 扩展 回到目录 1 Django的分页器(paginator)简介 在页面显示分页数据,需要用到Django分页器组件 from django.core.paginator import Paginator Paginator对象: paginator = Paginator(user_list, 10) # per_page: 每页显示条目数量 # count: 数据总个数 # num

Django 分页器的使用

Django作为Python Web开发框架的一哥,提供了企业级网站开发所需要的几乎所有功能,其中就包括自带分页功能.利用Django自带的Paginator类,我们可以很轻松地实现分页.Django 2.0和1.X最大的不同在于新增了get_page()方法.我们现在来具体看看有什么不同. Django 1.X 和Django 2.0下实现分页 利用Django实现分类非常简单,我们只需要修改views.py和模板template.Django 1.X下实现分页代码如下: # app/view

13 django分页器

django分页器 视图函数 1 from django.shortcuts import render,HttpResponse 2 from page_app01.models import Book 3 from django.core.paginator import Paginator, EmptyPage, PageNotAnInteger 4 import math 5 6 # Create your views here. 7 8 9 def pages(request): 10