Django(part44)--制作分页(django分页器)

网友投稿 255 2022-08-31


Django(part44)--制作分页(django分页器)

学习笔记,仅供参考

文章目录

​​制作分页​​

​​第一步​​​​第二步​​​​第三步​​

制作分页

现在,我们以Blog里的mywebsite_bookstore项目为例,对图书展示界面进行分页操作。

第一步

对图书展示界面中的35条图书记录,以每页10条记录为标准进行分页操作,并在页面下方展示页面跳转超链接。

在templates模板文件中,我们创建一个新的模板book.html:

图书列表 进入书库   返回首页

{% for abook in page %} {% if request.session.userinfo %} {% else %} {% endif %} {% endfor %}
书名 出版社 定价 零售价 修改 删除
{{ abook.title }} {{ abook.pub_house }} {{ abook.price }} {{ abook.market_price }}修改 删除您无权更改
{% for page_num in paginator.page_range %} 第{{page_num}}页 {% endfor %}

在bookstore应用下的视图模块views.py中创建视图函数book_page:

def book_page(request): bks = models.Book.objects.all() paginator = Paginator(bks, 10) print('对象的总个数是:', paginator.count) print('面码范围是:', paginator.page_range) #例如:range(1,5) 说明我们共有4页 print('总页数是:', paginator.num_pages) print('每页最大个数:', paginator.per_page) cur_page = request.GET.get('page', 1) #得到查询参数,默认为第1页 page = paginator.page(cur_page) return render(request, 'book.html', locals())

在bookstore应用下的urls.py模块中添加路由:

from django.urls import re_pathfrom . import viewsurlpatterns = [ re_path(r'^$', views.homepage), re_path(r'^add/$', views.new_book), re_path(r'^list_all/$', views.list_books), re_path(r'^mod/(\w+)/$', views.mod_book_info), re_path(r'^del/(\w+)/$', views.del_book), re_path(r'^book', views.book_page, name = "book"),]

现在,我们向for page_num in paginator.page_range %}{% if page_num == page.number %}第{{page_num}}页{% else %}第{{page_num}}页{% endif %}{% endfor %}

我们向分页功能 #} {# 上一页功能 #} {% if page.has_previous %} {# 如果有上一页返回True #} 上一页 {# 返回上一页的页码,如果上一页不存在,抛出InvalidPage异常 #} {% else %} 上一页 {% endif %} {% for page_num in paginator.page_range %} {% if page_num == page.number %} 第{{page_num}}页 {% else %} 第{{page_num}}页 {% endif %} {% endfor %} {#下一页功能#} {% if page.has_next %} {# 如果有下一页返回True #} 下一页 {% else %} 下一页 {% endif %}

我们向http://127.0.0.1:8000/bookstore/book发起请求:

成功!


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Django(part45)--forms模块(django setting)
下一篇:Java实现Excel转PDF的两种方法详解
相关文章

 发表评论

暂时没有评论,来抢沙发吧~