Flask分页功能
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%}还没有评论,来说两句吧
