flask分页

flask分页使用paginate(), 返回一个分页对象,参数如下

paginate(page=当前页, per_page=每页多少条, max_per_page=每页最大多少条)

具体使用

1、后端
从数据库查询数据,在后面加上paginate函数,得到分页对象,返回前端渲染

pagination = Article.query.order_by().paginate(page=p, per_page=2, max_per_page=20)
return render_template('index.html', page=page)

pagination具体的属性
pagination.items # 当前页的每条记录对象(list)
pagination.page # 当前页码
pagination.prev_num # 前一页页码
pagination.next_num # 后一页页码
pagination.has_next # 是否有下一页(true, false)
pagination.has_prev # 是否有上一页
pagination.pages # 总页数
pagination.total # 数据库的总的记录数

2、前端渲染

{% for article in page.items %}  {# 遍历分页对象列表 #}
。。。。。。
{% endfor %}

{# 分页开始 #}
{% if page.has_prev %}
<a href="{{ url_for('app.index') }}?page={{ page.prev_num }}">上一页</a>
{% endif %}

{% for page_num in range(1, page.pages + 1) %}  {# 使用range函数 #}
<a href="{{ url_for('app.index') }}?page={{ page_num }}">{{ page_num }}</a>
{% endfor %}

{% if page.has_next %}
<a href="{{ url_for('app.index') }}?page={{ page.next_num }}">下一页</a>
{% endif %}

<span>共{{ page.pages }}页</span>
{# 分页结束 #}

效果如下
在这里插入图片描述

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值