• 主页

  • 投资

  • IT

    🔥
  • 设计

  • 销售

  • 共46篇

    python3.X - Web - Flask1.1.1

关闭

返回栏目

关闭

返回python3.X - Web - Flask1.1.1栏目

34 - Flask - 扩展 - jinja2 - 分页

作者:

贺及楼

成为作者

更新日期:2024-03-24 12:05:37

Flask - 扩展 - jinja2 - 分页

.py

  1. SQLAlchemy.order_by.paginate(page=1,per_page=3)
  2. paginate后类型是flask_sqlalchemy.Pagination
  3. 要获得信息,查了之后paginate要.items,才是平时的信息
  4. data2 = data.items
  5. 平时的信息、分页要分别传过去模板
  6. return data2=data2,paginate=paginate
  7. 可以列表传过去

要显示的show.html

  1. {%import "hong.html" as pg%}
  2. {{pg.my_paginage(pagination,"app.art_list")}}

my_paginage是一个命名
pagination是数据:可以是paginate或者paginate.items格式
art_list是准备后面构造url_for方法的,app是蓝图名、art_list是方法名

还要一个专门放宏的hong.html

  1. {%macro my_paginate1(pagination1, url)%}
  2. {% for a in pagination1.items %}
  3. <td>{{a.nickname}}</td>
  4. {% endfor %}
  5. <nav>
  6. <ul class="pagination1">
  7. {%if pagination1.has_prev%}
  8. <li class="page-item active"><a class="page-link"
  9. href="{{url_for(url, page2=pagination1.page-1)}}">上一页</a></li>
  10. {%else%}
  11. <li class="page-item disabled"><a class="page-link" href="#">上一页</a></li>
  12. {%endif%}
  13. {%for page in pagination1.iter_pages(1,1,3,1)%}
  14. {%if page%}
  15. <li class="page-item {%if page==pagination1.page%}active{%endif%}"><a class="page-link"
  16. href="{{url_for(url, page2=page)}}">{{page}}</a></li>
  17. {%else%}
  18. <li class="page-item disabled"><a class="page-link" href="#">&hellip;</a></li>
  19. {%endif%}
  20. {%endfor%}
  21. {%if pagination1.has_next%}
  22. <li class="page-item active"><a class="page-link"
  23. href="{{url_for(url, page2=pagination1.page+1)}}">下一页</a></li>
  24. {%else%}
  25. <li class="page-item disabled"><a class="page-link" href="#">下一页</a></li>
  26. {%endif%}
  27. </ul>
  28. </nav>
  29. {%endmacro%}

pagination1.items内容
pagination1.has_prev的has_prev 是否有上一页 True/False
pagination1.has_next的has_next 是否有下一页 True/False
items 当前页面中的所有记录(比如当前页上有5条记录,items就是以列表形式组织这5个记录)
query 当前页的query对象(通过query对象调用paginate方法获得的Pagination对象)
page 当前页码(比如当前页是第5页,返回5)
prev_num 上一页页码
next_num 下一页页码
has_next 是否有下一页 True/False
has_prev 是否有上一页 True/False
pages 查询得到的总页数 per_page 每页显示的记录条数
total 总的记录条数

iter_page(1,1,3,1)当前页是第4页,[1,None,3,4,5,6,None,9]