flask 分页数据显示
Posted zengxm
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了flask 分页数据显示相关的知识,希望对你有一定的参考价值。
填充一些数据在表中
@blue.route(‘/pages/‘) def pages(): # 默认进入这个视图函数 第一页并只显示5条数据 page = request.args.get(‘page‘,1,type=int) per_page = request.args.get(‘per_page‘,5,type=int) # 返回列表 如[1, 2, 3, 4] pagination = Pron.query.order_by(Pron.p_id.desc()).paginate(page,per_page) # Pron.p_id.desc() 或者 -Pron.p_id 是倒序排列 # 返回当前页的所有数据 persons = pagination.items
return render_template(‘per.html‘,pagination=pagination,persons=persons)
# per.html % for person in persons % id: person.p_id <br> 字段: person.p_str <br> 随机号码: person.p_int <br><br> % endfor % <hr> <!--------------第一页---------------------> <a href=" url_for(‘base.pages‘) ">第一页</a>
# 通过 has_prev 判断是否能上一页,不能则 url 为 #
% if pagination.has_prev % <a href=" url_for(‘base.pages‘) ?page= pagination.prev_num ">上一页</a> % else % <a href="#">上一页</a> % endif % <!--------------页码列表---------------------> % for page in pagination.iter_pages() % % if page % <!--------------当列表中的页码不等于 当前的页数 生成其他页码数(url)---------------------> % if page != pagination.page % <a href=" url_for(‘base.pages‘) ?page= page "> page </a> % else % <a href="#"> page </a> % endif % % endif % % endfor %
# 通过 has_next 判断是否能上一页,不能则 url 为 #
% if pagination.has_next % <a href=" url_for(‘base.pages‘) ?page= pagination.next_num ">下一页</a> % else % <a href="#">上一页</a> % endif % <!--------------最后一页---------------------> <a href=" url_for(‘base.pages‘) ?page= pagination.pages ">最后一页</a> <hr> 当前页面 pagination.page 总页数 pagination.pages 总数据 pagination.total
显示
其中一些方法的知识点
paginate.page 当前页数
paginate.pages 总页数
paginate.total 数据总条数
paginate.has_prev 是否存在上一页 是则返回trun
paginate.iter_pages() 所有页码 返回列表 如[1, 2, 3, 4] 可在html模板中迭代得到页码数
paginate(page, per_page,error_out).items 返回当前页的所有数据 在html中循环迭代得到其中数据 如下
% for person in paginate.items %
id: person.p_id <br> 字段: person.p_str <br> 随机号码: person.p_int <br><br> % endfor %
简化视图函数和html模板
@blue.route(‘/pages/‘) def pages(): page = request.args.get(‘page‘,1,type=int) per_page = request.args.get(‘per_page‘,5,type=int) # 返回列表 如[1, 2, 3, 4] pagination = Pron.query.order_by(Pron.p_id.desc()).paginate(page,per_page) # Pron.p_id.desc() 或者 -Pron.p_id 是倒序排列 # 返回当前页的所有数据 persons = pagination.items # 不需要直接使用paginate在html模板中items循环 # return render_template(‘per.html‘,pagination=pagination,persons=persons) # 简化 在html页面中paginate.items 可以for循环迭代的到实例汇总的数据 return render_template(‘per.html‘, pagination=pagination)
% for person in pagination.items % id: person.p_id <br> 字段: person.p_str <br> 随机号码: person.p_int <br><br> % endfor %
以上是关于flask 分页数据显示的主要内容,如果未能解决你的问题,请参考以下文章