java中的接口是类吗
255
2022-08-31
Django(part44)--制作分页(django分页器)
学习笔记,仅供参考
文章目录
制作分页
第一步第二步第三步
制作分页
现在,我们以Blog里的mywebsite_bookstore项目为例,对图书展示界面进行分页操作。
第一步
对图书展示界面中的35条图书记录,以每页10条记录为标准进行分页操作,并在页面下方展示页面跳转超链接。
在templates模板文件中,我们创建一个新的模板book.html:
书名 | 出版社 | 定价 | 零售价 | 修改 | 删除 | ||
---|---|---|---|---|---|---|---|
{{ abook.title }} | {{ abook.pub_house }} | {{ abook.price }} | {{ abook.market_price }} | {% if request.session.userinfo %}修改 | 删除 | {% else %}您无权更改 | {% endif %}
在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小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~