flask pagination

1. Paging button

1. Create a new ui page (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 %}

reference in the page

{% import "ui/admin_page.html" as pg %}
{{ pg.page(page_data,'admin.tag_list') }}

 

2. Pagination example

#标签列表
@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( #Query rule 
        Tag.addtime.asc()
    ).paginate(page = page,per_page=10) #Pagination per_page : display several items per page 
    return render_template( " admin/tag_list.html " ,page_data = page_data)

in the page

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

 

Guess you like

Origin http://43.154.161.224:23101/article/api/json?id=325253962&siteId=291194637