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.addtime.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>
                                        &nbsp;
                                        <a class="label label-danger">删除</a>
                                    </td>
                                </tr>
                                {% endfor %}

猜你喜欢

转载自www.cnblogs.com/jokerq/p/8987118.html