django samesite,Django

  django samesite,Django

  学习笔记,仅供参考。

  文章页面制作的第一步、第二步、第三步

  制作分页

  现在,我们以博客中的mywebsite_bookstore项目为例,对图书展示界面进行分页。

  第一步

  对于图书展示界面中的35条图书记录,以每页10条记录为分页标准,在页面底部显示页面跳转超链接。

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

  !声明文档类型

  html lang=en

  头

  meta charset=UTF-8

  标题列表/标题

  /头

  身体

  A href=/bookstore/进入书库/a nbsp。

  A href=/返回主页/a

  桌子

  tr

  第个标题/第个

  Th出版社/th

  Th定价/th

  Th零售价/th

  Th修改/th

  删除/th

  /tr

  {% for abook in page %}

  tr

  td {{ abook.title }} /td

  td {{ abook.pub_house }} /td

  td {{ abook.price }} /td

  td {{ abook.market_price }} /td

  {% if request.session.userinfo %}

  TD href=/book store/mod/{ { abook . title } } modify/a/TD

  TD href=/book store/del/{ { abook . title } } Delete/a/TD

  {% else %}

  Tdspan= 2 您无权更改/td。

  {% endif %}

  /tr

  {% endfor %}

  /表格

  { % for page _ num in paginator . page _ range % }

  a href={% url book %}?page={ { page _ num } } page { { page _ num } }/a

  {% endfor %}

  /body

  /html

  在书店应用程序下的视图模块views.py中创建视图函数book_page:

  def book_page(请求):

  bks=型号。Book.objects.all()

  分页器=分页器(bks,10)

  Print(对象总数为:,paginator.count)

  打印(面码范围为:,paginator.page_range)

  #例如:range(1,5)表示我们总共有4页。

  打印(总页数为:,paginator.num_pages)

  Print(每页最大数量:,paginator.per_page)

  cur_page=请求。GET.get(page ,1)

  #获取查询参数,默认为第1页。

  page=paginator.page(cur_page)

  返回render(request, book.html ,locals())

  在书店应用程序下的urls.py模块中添加一个路由:

  从django.urls导入re_path

  从。导入视图

  urlpatterns=[

  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 ),

  ]

  现在,我们向http://127 . 0 . 0 . 1:8000/书店/书提出请求:

  可以看到页面上显示了10个图书信息项,页面底部出现了4个页面跳转的超链接。现在,让我们点击第四页:

  如你所见,第四页只有五条图书信息。同时URL中出现查询参数页面,查询参数值为4。

  第二步

  在模板中添加一个判断,就是对于当前页面(比如当前页面在第2页),我们不添加跳转超链接(针对第2页)。

  这里我们以百度为例:

  我们修改book.html模板(仅显示超链接的代码部分):

  { % for page _ num in paginator . page _ range % }

  {% if page_num==page.number %}

  第{ {页码}}页

  {% else %}

  a href={% url book %}?page={ { page _ num } } page { { page _ num } }/a

  {% endif %}

  {% endfor %}我们向http://127 . 0 . 0 . 1:8000/书店/书:

  您可以看到当前页面(第一页)没有超链接。

  第三步

  添加上一页和下一页功能。

  我们修改book.html模板(仅显示超链接的代码部分):

  {#分页功能#}

  {#上一个函数#}

  {% if page.has_previous %}

  {#如果上一页返回True #}

  a href={% url book %}?page={ { page . Previous _ page _ number } } 上一页/a

  {#返回前一页的页码,如果前一页不存在,则抛出InvalidPage异常#}

  {% else %}

  上一页

  {% endif %}

  { % for page _ num in paginator . page _ range % }

  {% if page_num==page.number %}

  第{ {页码}}页

  {% else %}

  a href={% url book %}?page={ { page _ num } } page { { page _ num } }/a

  {% endif %}

  {% endfor %}

  {#下一页功能#}

  {% if page.has_next %}

  {#如果下一页返回True #}

  a href={% url book %}?Page={{ page.next_page_number }} 下一页/a

  {% else %}

  下一页

  {% endif %}

  我们向http://127 . 0 . 0 . 1:8000/书店/书提出请求:

  成功!

  转载请联系作者获得转载授权,否则将追究法律责任。

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: