知识预览

  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组件-分页器相关推荐

  1. django组件 分页器

    1 from django.shortcuts import render,HttpResponse 2 3 # Create your views here. 4 from app01.models ...

  2. python 全栈开发,Day79(Django的用户认证组件,分页器)

    一.Django的用户认证组件 用户认证 auth模块 在进行用户登陆验证的时候,如果是自己写代码,就必须要先查询数据库,看用户输入的用户名是否存在于数据库中: 如果用户存在于数据库中,然后再验证用户 ...

  3. Django框架----分页器(paginator)

    Django的分页器(paginator) view.py from django.shortcuts import render,HttpResponse# Create your views he ...

  4. 解决使用vue-awesome-swiper组件分页器pagination样式设置失效问题

    解决使用vue-awesome-swiper组件分页器pagination样式设置失效问题 参考文章: (1)解决使用vue-awesome-swiper组件分页器pagination样式设置失效问题 ...

  5. $Django Paginator分页器 批量创建数据

    1批量插入数据: User_list=[] for i in range(100): User_list.append(User(name='小明%s'%i,pwd='abcdefg%s'%i)) # ...

  6. 11. Django 2.1.7 MVT模型示例 - 查询数据,返回渲染模板数据

    参考文献 官方文档 上一篇文章讲述了Django 2.1.7 创建应用模板,基本已经理解了Django 2.1.7 框架下如何调用模板,并且渲染数据. 本篇章继续往数据库添加数据,然后查询数据,在模板 ...

  7. Django的分页器(paginator)

    首先你要先导入Paginator from django.core.paginator import Paginator 你要再创建分页对象  然后通过这个对象来调用分页的所有的属性 paginato ...

  8. Django 组件- 中间件

    11.1 中间件 一.中间件的概念 中间件顾名思义,是介于request与response处理之间的一道处理过程,相对比较轻量级,并且在全局上改变django的输入与输出.因为改变的是全局,所以需要谨 ...

  9. html分页器的实现原理,Django之分页器

    Django自带分页器的实现 介绍 Django提供了一个新的类来帮助你管理分页数据,这个模块存放在django.core.paginator.py. 其中有两个核心类,一个是Paginator类,另 ...

最新文章

  1. C#实现的18位×××格式验证算法
  2. 面向对象之__isset__unset
  3. 如何使用LaTeX让自己不乱?
  4. Python3 透明网桥算法
  5. gridview行号
  6. jquery easyui-----------tree
  7. 利用drozer进行Android渗透测试
  8. LABjs(类似于LazyLoad,但它更加方便管理依赖关系)
  9. matlab怎么导入程序出错,Matlab导入数据时出错!十分困扰!
  10. u盘为什么显示在工具栏而不显示在计算机里,为什么U盘后插入后不显示?
  11. 杭州电子科技大学OJACM 2049题 (必AC及其易错点)
  12. 相机模型-鱼眼模型/Omnidirectional Camera(1)
  13. 多帧图像增强 matlab,MATLAB中图像增强技术的实现
  14. Python re模块,正则表达式
  15. ARP攻击-流量分析
  16. 部署github上的代码到本地pycharm
  17. 什么是HBase?终于有人讲明白了
  18. unity安卓应用名称多语言本地化
  19. 简写的最大公约数写法(不能再忘了)
  20. 2023年美赛C题 预测Wordle结果Predicting Wordle Results这题太简单了吧

热门文章

  1. 关于HttpUtility.UrlEncode,HttpUtility.UrlDecode,Server.UrlEncode,Server.UrlDecode
  2. 单片机如何用普通电池供电?
  3. 漫步最优化四十三——拟牛顿法
  4. 《neuralnetworks and deeplearning》学习笔记1-深入理解BP算法
  5. 数据可视化系列(六):场景案例显神通
  6. Servlet传递数据方式
  7. linux电脑管理员身份运行,在Ubuntu 20.04 LTS中添加“以管理员身份打开”
  8. feed流和瀑布流_基础知识讲解:什么是feed流?(图文)
  9. jboss怎么连接Oracle数据库,如何在Jboss中配置数据源
  10. python 表情包 gif_几行 python 代码合成 gif / 微信表情~与恶意合成软件说再见【文末附代码】...