Flask分页功能

2019-06-25 10:04:20阅读 189评论 0

1.概述

Flask模型自带分页功能,如下操作可进行调用

    page=request.args.get('page')pagination=Subject.query
    .filter(Subject.id.in_(sub_id_list))
    .paginate(page,per_page=5,error_out=False)

参数:

page 当前所处页码位置

per_page 定义每页显示多少条

error_out 当从数据库中未取到数据时,是否报错,False为不报错,返回空列表

2.pagination属性

pages 总共有多少页

page 当前所处的页码位置

iter_page 元素为所有页面的列表,如[1,2,3……]

has_prev 有上一页

has_next 有下一页

3.模板实例

    {%if pagination.pages>=2%}  
        <ul class="pagination justify-content-center">  
            {%if pagination.has_prev%}  
                <li class="page-item">  
                    <a class="page-link" href="/collection?content_type=0&page={{pagination.prev_num}}" aria-label="Previous">  
                <span aria-hidden="true">«</span>  
                <span class="sr-only">Previous</span>  
            </a>  
            </li>  
            {%else%}  
            <li class="page-item disabled">  
                <a class="page-link" href="#" aria-label="Previous">  
                        <span aria-hidden="true">«</span>  
                        <span class="sr-only">Previous</span>  
                    </a>  
                </li>  
            {%endif%}  

            {%for page in pagination.iter_pages()%}  
                {%if page != pagination.page%}  
                    <li class="page-item"><a class="page-link" href="/collection?content_type=0&page={{page}}">{{page}}</a></li>  
                {%else%}  
                    <li class="page-item active"><a class="page-link" href="/collection?content_type=0&page={{page}}">{{page}}</a></li>  
                {%endif%}  
            {%endfor%}  

            {%if pagination.has_next%}  
                <li class="page-item">  
                    <a class="page-link" href="/collection?content_type=0&page={{pagination.next_num}}" aria-label="Next">  
                        <span aria-hidden="true">»</span>  
                        <span class="sr-only">Next</span>  
                    </a>  
                </li>  
            {%else%}  
                <li class="page-item disabled">  
                    <a class="page-link" href="#" aria-label="Next">  
                        <span aria-hidden="true">»</span>  
                        <span class="sr-only">Next</span>  
                    </a>  
                </li>  
            {%endif%}  

        </ul>      
    {%endif%}

还没有评论,来说两句吧