1.获取分页对象
page = request.args.get('page' or 1)
paginate = Goods.query.paginate(page,8)
paginate.items # 商品对象信息,可以用于循环遍历获取商品信息
paginate.page: # 当前的页码
paginate.total: # 商品的总数量
paginate.per_page: #总的页码数量
paginate.prev_num: # 上一页的页码
paginate.next_num: # 下一页的页码
paginate.has_prev: # 是否有上一页
paginate.has_next: # 是否有下一页
return render_template('home.html',paginate = paginate,endpoint='blue.home')
2.模板中的使用
{% macro pagination_widget(pagination, endpoint) %}
<ul class="pagination">
<li{% if not pagination.has_prev %} class="disabled"{% endif %}>
<a href="{% if pagination.has_prev %}{{ url_for(endpoint,page = pagination.page - 1, **kwargs) }}
{% else %}#{% endif %}">«
</a>
</li>
{% for p in pagination.iter_pages() %}
{% if p %}
{% if p == pagination.page %}
<li class="active">
<a href="{{ url_for(endpoint, page = p, **kwargs) }}">{{ p }}</a>
</li>
{% else %}
<li>
<a href="{{ url_for(endpoint, page = p, **kwargs) }}">{{ p }}</a>
</li>
{% endif %}
{% else %}
<li class="disabled">
<a href="#">…</a>
</li>
{% endif %}
{% endfor %}
<li{% if not pagination.has_next %} class="disabled"{% endif %}>
<a href="{% if pagination.has_next %}{{ url_for(endpoint,page = pagination.page + 1, **kwargs) }}{% else %}#{% endif %}">»</a>
</li>
</ul>
{% endmacro %}
{{ pagination_widget.run(paginate,endpoint) }}