django组件库,Django组件
姜戈的分页器(分页器)views.py
从django .捷径导入呈现,HttpResponse
#在此创建您的观点。
从app01 .模型导入*
从django.core.paginator导入分页器、EmptyPage、PageNotAnInteger
定义索引(请求):
批量导入数据:
书单=[]
对于范围内的我(100):
书单。append(Book(title= Book str(I),price=30 i*i))
Book.objects.bulk_create(图书列表)
分页器的使用:
book_list=Book.objects.all()
paginator=Paginator(book_list,10)
print(count:,paginator.count) #数据总数
打印(页数,分页器。页数)#总页数
print(page_range ,paginator.page_range) #页码的列表
page1=paginator.page(1) #第一页的页,面,张,版对象
对于第一页中的我:#遍历第一页的所有数据对象
打印(一)
打印(page1.object_list) #第一页的所有数据
page2=paginator.page(2)
print(page2.has_next()) #是否有下一页
打印(page2.next_page_number()) #下一页的页码
print(page2.has_previous()) #是否有上一页
打印(page2.previous_page_number()) #上一页的页码
# 抛错
#page=paginator.page(12) #错误:EmptyPage
#page=paginator.page(z) #错误:PageNotAnInteger
book_list=Book.objects.all()
paginator=Paginator(book_list,10)
页面=请求GET.get(page ,1)
currentPage=int(page)
尝试:
打印(第页)
book_list=paginator.page(页面)
除了PageNotAnInteger:
book_list=paginator.page(1)
除了EmptyPage:
book _ list=paginator。页面(分页器。数量_页数)
返回render(请求, index.html ,{book_list:book_list,分页器:分页器,当前页面:当前页面})视图。巴拉圭
index.html
!声明文档类型
html lang=en
头
meta charset=UTF-8
标题标题/标题
link rel=样式表 href= https://cdn。bootcss。com/bootstrap/3。3 .7/CSS/自举。量滴 CSS
integrity= sha 384-bvyiisifek 1 dgmjrakycuhahrg 32 omu cw7 on 3 rydg 4 va PMS tsz/k 68 vbdeh 4 u 交叉原点= anonymous
/头
身体
差异
h4分页器/h4
保险商实验所
{ % for book _ list % }中的图书
李{ {书。title } }-{ { book。价格} }/李
{% endfor %}
/ul
ul id=寻呼机
{% if book_list.has_previous %}
阿利href=/index/?page={ { book _ list。上一页页码} } 上一页/a/李
{% else %}
阿利href=# 上一页/a/李
{% endif %}
{ % for num in paginator。page _ range % }
{% if num==currentPage %}
阿利href=/index/?page={{ num }} {{ num }} /a /li
{% else %}
阿利href=/index/?page={{ num }} {{ num }} /a /li
{% endif %}
{% endfor %}
{% if book_list.has_next %}
阿利href=/index/?page={ { book _ list。下一页页码} } 下一页/a/李
{% else %}
阿利href=# 下一页/a/李
{% endif %}
/ul
/div
/body
/html index.html
扩展
定义索引(请求):
book_list=Book.objects.all()
paginator=Paginator(book_list,15)
页面=请求GET.get(page ,1)
currentPage=int(page)
# 如果页数十分多时,换另外一种显示方式
如果paginator.num _第11页:
如果当前页面-5 1:
pageRange=range(1,11)
elif当前页面5分页器。页数:
pageRange=范围(当前页面-5,分页器。编号_页面1)
否则:
pageRange=范围(当前页面-5,当前页面5)
否则:
pageRange=paginator.page_range
尝试:
打印(第页)
book_list=paginator.page(页面)
除了PageNotAnInteger:
book_list=paginator.page(1)
除了EmptyPage:
book _ list=paginator。页面(分页器。数量_页数)
返回render(request, index.html ,locals())views.py
cnblog项目views.py
快捷方式导入渲染,重定向,HttpResponse
#在此创建您的观点。
从。模型导入手册
从django.core.paginator导入空白页分页器
定义索引(请求):
# 批量导入数据
# book_list=[]
#对于范围内的我(100):
# book=Book(title=book_%s % i,price=i * i)
# book_list.append(图书)
#书。对象。批量创建(book _ list)#批量插入多条数据
# return render(请求, index.html ,局部变量())
book _ list=book。对象。all()#查询集列表
# 分页器
paginator=Paginator(book_list,10)
打印(数据总数:,paginator.count)
打印(总页数,paginator.num_pages)
打印(页码列表,paginator.page_range)
当前页面编号=int(请求GET.get(page ,1))
如果paginator.num _第11页:
如果当前页号为1:
page_range=range(1,12)
否则如果当前页数5分页器页数:
page_range=范围(分页器。编号_页数- 10,分页器。编号_页数1)
否则:
page_range=范围(当前页码- 5,当前页码-6)
否则:
page _ range=分页器。页面范围
尝试:
current_page=paginator.page(当前页面编号)
# 显示某一页具体数据的两种方式
print(object_list ,current_page.object_list)
对于当前页面中的我:
打印(一)
除了e:
current_page=paginator.page(1)
返回render(request, index.html ,locals())views.py
努力成为一个开发者个人站点:www.pythonav.cn
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。