11 Django组件-分页器
知识预览
1 Django的分页器(paginator)
Django的分页器(paginator)
view
from django.shortcuts import render,HttpResponse# Create your views here. from app01.models import * from django.core.paginator import Paginator, EmptyPage, PageNotAnIntegerdef 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)print("count:",paginator.count) #数据总数print("num_pages",paginator.num_pages) #总页数print("page_range",paginator.page_range) #页码的列表page1=paginator.page(1) #第1页的page对象for i in page1: #遍历第1页的所有数据对象print(i)print(page1.object_list) #第1页的所有数据page2=paginator.page(2)print(page2.has_next()) #是否有下一页print(page2.next_page_number()) #下一页的页码print(page2.has_previous()) #是否有上一页print(page2.previous_page_number()) #上一页的页码# 抛错#page=paginator.page(12) # error:EmptyPage#page=paginator.page("z") # error:PageNotAnInteger'''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",{"book_list":book_list,"paginator":paginator,"currentPage":currentPage})
index.html:
<!DOCTYPE html> <html lang="en"> <head><meta charset="UTF-8"><title>Title</title><link rel="stylesheet" href="https://cdn.bootcss.com/bootstrap/3.3.7/css/bootstrap.min.css" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous"> </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="/index/?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="/index/?page={{ num }}">{{ num }}</a></li>{% else %}<li class="item"><a href="/index/?page={{ num }}">{{ num }}</a></li>{% endif %}{% endfor %}{% if book_list.has_next %}<li class="next"><a href="/index/?page={{ book_list.next_page_number }}">下一页</a></li>{% else %}<li class="next disabled"><a href="#">下一页</a></li>{% endif %}</ul> </div></body> </html>
扩展
def index(request):book_list=Book.objects.all()paginator = Paginator(book_list, 15)page = request.GET.get('page',1)currentPage=int(page)# 如果页数十分多时,换另外一种显示方式if paginator.num_pages>11:if currentPage-5<1:pageRange=range(1,11)elif currentPage+5>paginator.num_pages:pageRange=range(currentPage-5,paginator.num_pages+1)else:pageRange=range(currentPage-5,currentPage+5)else:pageRange=paginator.page_rangetry: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())
转载于:https://www.cnblogs.com/lingcai/p/9856119.html
11 Django组件-分页器相关推荐
- django组件 分页器
1 from django.shortcuts import render,HttpResponse 2 3 # Create your views here. 4 from app01.models ...
- python 全栈开发,Day79(Django的用户认证组件,分页器)
一.Django的用户认证组件 用户认证 auth模块 在进行用户登陆验证的时候,如果是自己写代码,就必须要先查询数据库,看用户输入的用户名是否存在于数据库中: 如果用户存在于数据库中,然后再验证用户 ...
- Django框架----分页器(paginator)
Django的分页器(paginator) view.py from django.shortcuts import render,HttpResponse# Create your views he ...
- 解决使用vue-awesome-swiper组件分页器pagination样式设置失效问题
解决使用vue-awesome-swiper组件分页器pagination样式设置失效问题 参考文章: (1)解决使用vue-awesome-swiper组件分页器pagination样式设置失效问题 ...
- $Django Paginator分页器 批量创建数据
1批量插入数据: User_list=[] for i in range(100): User_list.append(User(name='小明%s'%i,pwd='abcdefg%s'%i)) # ...
- 11. Django 2.1.7 MVT模型示例 - 查询数据,返回渲染模板数据
参考文献 官方文档 上一篇文章讲述了Django 2.1.7 创建应用模板,基本已经理解了Django 2.1.7 框架下如何调用模板,并且渲染数据. 本篇章继续往数据库添加数据,然后查询数据,在模板 ...
- Django的分页器(paginator)
首先你要先导入Paginator from django.core.paginator import Paginator 你要再创建分页对象 然后通过这个对象来调用分页的所有的属性 paginato ...
- Django 组件- 中间件
11.1 中间件 一.中间件的概念 中间件顾名思义,是介于request与response处理之间的一道处理过程,相对比较轻量级,并且在全局上改变django的输入与输出.因为改变的是全局,所以需要谨 ...
- html分页器的实现原理,Django之分页器
Django自带分页器的实现 介绍 Django提供了一个新的类来帮助你管理分页数据,这个模块存放在django.core.paginator.py. 其中有两个核心类,一个是Paginator类,另 ...
最新文章
- C#实现的18位×××格式验证算法
- 面向对象之__isset__unset
- 如何使用LaTeX让自己不乱?
- Python3 透明网桥算法
- gridview行号
- jquery easyui-----------tree
- 利用drozer进行Android渗透测试
- LABjs(类似于LazyLoad,但它更加方便管理依赖关系)
- matlab怎么导入程序出错,Matlab导入数据时出错!十分困扰!
- u盘为什么显示在工具栏而不显示在计算机里,为什么U盘后插入后不显示?
- 杭州电子科技大学OJACM 2049题 (必AC及其易错点)
- 相机模型-鱼眼模型/Omnidirectional Camera(1)
- 多帧图像增强 matlab,MATLAB中图像增强技术的实现
- Python re模块,正则表达式
- ARP攻击-流量分析
- 部署github上的代码到本地pycharm
- 什么是HBase?终于有人讲明白了
- unity安卓应用名称多语言本地化
- 简写的最大公约数写法(不能再忘了)
- 2023年美赛C题 预测Wordle结果Predicting Wordle Results这题太简单了吧
热门文章
- 关于HttpUtility.UrlEncode,HttpUtility.UrlDecode,Server.UrlEncode,Server.UrlDecode
- 单片机如何用普通电池供电?
- 漫步最优化四十三——拟牛顿法
- 《neuralnetworks and deeplearning》学习笔记1-深入理解BP算法
- 数据可视化系列(六):场景案例显神通
- Servlet传递数据方式
- linux电脑管理员身份运行,在Ubuntu 20.04 LTS中添加“以管理员身份打开”
- feed流和瀑布流_基础知识讲解:什么是feed流?(图文)
- jboss怎么连接Oracle数据库,如何在Jboss中配置数据源
- python 表情包 gif_几行 python 代码合成 gif / 微信表情~与恶意合成软件说再见【文末附代码】...