flask 分页
一、分页按钮
1.新建ui页面(admin_page.html)
{% macro page(data,url) -%}
{% if data %}
<ul class="pagination pagination-sm no-margin pull-right">
<li><a href="{{ url_for(url,page=1) }}">首页</a></li>
{% if data.has_prev %}
<li><a href="{{ url_for(url,page=data.prev_num) }}">上一页</a></li>
{% else %}
<li class="disabled"><a href="#">上一页</a></li>
{% endif %}
{% for v in data.iter_pages() %}
{% if v==data.page %}
<li class="active"><a href="#">{{ v }}</a></li>
{% else %}
<li><a href="{{ url_for(url,page=v) }}">{{ v }}</a></li>
{% endif %}
{% endfor %}
{% if data.has_next %}
<li><a href="{{ url_for(url,page=data.next_num) }}">下一页</a></li>
{% else %}
<li class="disabled"><a href="#">下一页</a></li>
{% endif %}
<li><a href="{{ url_for(url,page=data.pages) }}">尾页</a></li>
</ul>
{% endif %}
{%- endmacro %}
在页面中引用
{% import "ui/admin_page.html" as pg %}
{{ pg.page(page_data,'admin.tag_list') }}
二、分页示例
#标签列表 @admin.route("/tag/list/<int:page>/",methods=["GET"]) @admin_login_req def tag_list(page = None): if page is None: page = 1 page_data = Tag.query.order_by(#查询规则 Tag.id.asc() ).paginate(page = page,per_page=10)#分页 per_page:每页显示几条 return render_template("admin/tag_list.html",page_data = page_data)
页面中
{% for v in page_data.items %}
<tr>
<td>{{ v.id }}</td>
<td>{{ v.name }}</td>
<td>{{ v.addtime }}</td>
<td>
<a href="" class="label label-success">编辑</a>
<a class="label label-danger">删除</a>
</td>
</tr>
{% endfor %}

浙公网安备 33010602011771号