Flask中實現分頁

準備工做

先建一個表,往表裏面插入一些數據html

起步

後端代碼:前端

@blue.route('/fenye')
def fenye():
page = int(request.args.get('page',1))
per_page = int(request.args.get('per_page',5))
paginator = Country.query.paginate(page,per_page,error_out=False)
return render_template('fenye.html',data=paginator)

前端代碼:bootstrap

{% extends 'bootstrap/base.html' %}

{% block body %}
<ul>
{% for i in data.items %}
<li>國家名爲{{ i.name }}</li>
{% endfor %}
</ul>

<nav aria-label="Page navigation">
<ul class="pagination">
{% if data.has_prev %}
<li>
<a href="{{ url_for('wusir.fenye') }}?page={{ data.prev_num }}" aria-label="Previous">
<span aria-hidden="true">上一頁</span>
</a>
</li>
{% else %}
<li>
<a href="{{ url_for('wusir.fenye') }}?page=1" aria-label="Previous">
<span aria-hidden="true">上一頁</span>
</a>
</li>
{% endif %}

{% for i in data.iter_pages() %}
<li><a href="{{ url_for('wusir.fenye') }}?page={{ i }}">{{ i }}</a></li>
{% endfor %}

<li>
{% if data.has_next %}
<a href="{{ url_for('wusir.fenye') }}?page={{ data.next_num }}"
aria-label="Next">
<span aria-hidden="true">下一頁</span>
</a>
{% else %}
<a href="{{ url_for('wusir.fenye') }}?page={{ data.pages }}"
aria-label="Next">
<span aria-hidden="true">下一頁</span>
</a>
{% endif %}
</li>
</ul>
</nav>

{% endblock %}

分頁器對象經常使用屬性和方法

  • items 當前頁面中的全部記錄(好比當前頁上有5條記錄,items就是以列表形式組織這5個記錄)
  • page 當前頁碼(好比當前頁是第5頁,返回5)
  • pages 總頁碼
  • prev_num 上一頁頁碼
  • next_num 下一頁頁碼
  • has_next 是否有下一頁 True/False
  • has_prev 是否有上一頁 True/False
  • iter_pages 用來得到分頁頁碼列表。
相關文章
相關標籤/搜索