Django(五)--分页器(paginator)
来源:互联网 发布:惠州网络车问政平台 编辑:程序博客网 时间:2024/05/18 01:15
分页器的使用
>>> from django.core.paginator import Paginator>>> objects = ['john', 'paul', 'george', 'ringo']>>> p = Paginator(objects, 2) >>> p.count #数据总数4>>> p.num_pages #总页数2>>> type(p.page_range) # `<type 'rangeiterator'>` in Python 2.<class 'range_iterator'>>>> p.page_range #页码的列表range(1, 3) # =========[1,2] >>> page1 = p.page(1) #第1页的page对象>>> page1<Page 1 of 2>>>> page1.object_list #第1页的数据['john', 'paul'] >>> page2 = p.page(2)>>> page2.object_list #第2页的数据['george', 'ringo']>>> page2.has_next() #是否有下一页False>>> page2.has_previous() #是否有上一页True>>> page2.has_other_pages() #是否有其他页True>>> page2.next_page_number() #下一页的页码Traceback (most recent call last):...EmptyPage: That page contains no results>>> page2.previous_page_number() #上一页的页码1>>> page2.start_index() # 本页第一条记录的序数(从1开始)3>>> page2.end_index() # 本页最后录一条记录的序数(从1开始)4 >>> p.page(0) #错误的页,抛出异常Traceback (most recent call last):...EmptyPage: That page number is less than 1>>> p.page(3) #错误的页,抛出异常Traceback (most recent call last):...EmptyPage: That page contains no results
实现一个分页效果:
Template:
{% load staticfiles %}<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>Title</title> <link rel="stylesheet" href="{% static 'bootstrap.css' %}"></head><body><div class="container"> <h4>分页器</h4> <ul> {% for book in book_list %} <li>{{ book.title }} {{ book.price }}</li> {% endfor %}</ul> <ul class="pagination" id="pager"> {% if book_list.has_previous %} <li class="previous"><a href="/blog/?page={{ book_list.previous_page_number }}">上一页</a></li> {% else %} <li class="previous disabled"><a href="#">上一页</a></li> {% endif %} {% for num in paginator.page_range %} {% if num == currentPage %} <li class="item active"><a href="/blog/?page={{ num }}">{{ num }}</a></li> {% else %} <li class="item"><a href="/blog/?page={{ num }}">{{ num }}</a></li> {% endif %} {% endfor %} {% if book_list.has_next %} <li class="next"><a href="/blog/?page={{ book_list.next_page_number }}">下一页</a></li> {% else %} <li class="next disabled"><a href="#">下一页</a></li> {% endif %} </ul></div></body></html>
views:
from django.shortcuts import render,HttpResponse# Create your views here.from django.core.paginator import Paginator, EmptyPage, PageNotAnIntegerfrom app01.models import *def index(request): ''' 批量导入数据: Booklist=[] for i in range(100): Booklist.append(Book(title="book"+str(i),price=30+i*i)) Book.objects.bulk_create(Booklist) ''' book_list=Book.objects.all() paginator = Paginator(book_list, 10) page = request.GET.get('page',1) currentPage=int(page) try: print(page) book_list = paginator.page(page) except PageNotAnInteger: book_list = paginator.page(1) except EmptyPage: book_list = paginator.page(paginator.num_pages) return render(request,"index.html",locals())
阅读全文
0 0
- Django(五)--分页器(paginator)
- django分页技术Paginator(进阶篇)
- django分页paginator
- python django paginator分页
- Django的分页 Paginator
- django Paginator分页模块
- Django分页与Paginator
- Django-paginator(分页)
- Django分页Paginator
- Django 1.11 使用paginator,Django自带分页器
- django分页技术django-pagination和Paginator(基础篇)
- django使用 Paginator 实现分页功能
- Django:使用Paginator进行自动分页
- Django中扩展Paginator实现分页
- django 1.97 paginator实现分页功能
- Django:使用Paginator进行自动分页
- django Paginator
- django提供类分页的工具——Paginator类
- 未解决问题
- 在vim中使用shell命令的方法以及foreach循环的使用.
- Find The Determinant III SPOJ
- Guess Next Session
- MySQl启动异常:net start mysql 服务名无效
- Django(五)--分页器(paginator)
- THC63LVD827:RGB转双路LVDS规格书
- 联币网发展势头被看好 打造一体化区块链大生态系统
- 网页不显示样式的解决方向之一
- Android bluetooth 流程分析(一)createBond
- C语言--队列
- 使用集成学习提升机器学习算法性能
- 关于表单元素input的placeholder属性
- Chrome Extension options_page & storage【谷歌浏览器扩展之选项页和storage】