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 %}