[英]How to create pages pagination using Peewee Flask?
我使用 Flask 和 Peewee 創建了一個實踐博客。 我想在應用程序中包含分頁。 我按照 Colifier 示例博客分頁進行操作,效果很好。 我的問題是,有沒有辦法讓我顯示這樣的頁數:
這是我遵循的示例分頁:
這是分頁代碼的樣子:
分頁.html
{% if pagination.get_page_count() > 1 %}
<ul class="pager">
{% if pagination.get_page() > 1 %}
<li class="previous"><a href="./?{{ request.args|clean_querystring('page', page=pagination.get_page() - 1) }}">« Previous {{ pagination.get_page() - 1 }} / {{ pagination.get_page_count() }}</a></li>
{% else %}
<li class="previous disabled"><a href="#">« Previous</a></li>
{% endif %}
{% if pagination.get_page_count() > pagination.get_page() %}
<li class="next"><a href="./?{{ request.args|clean_querystring('page', page=pagination.get_page() + 1) }}">Next {{ pagination.get_page() + 1 }} / {{ pagination.get_page_count() }} »</a></li>
{% else %}
<li class="next disabled"><a href="#">Next »</a></li>
{% endif %}
</ul>
{% endif %}
初始化.py
@app.template_filter('clean_querystring')
def clean_querystring(request_args, *keys_to_remove, **new_values):
querystring = dict((key, value) for key, value in request_args.items())
for key in keys_to_remove:
querystring.pop(key, None)
querystring.update(new_values)
return urllib.parse.urlencode(querystring)
編輯:我在分頁模板中添加了這個,但我認為這看起來不對
# Pagination numbers
{% for page_num in page %}
{% if page_num %}
{% if page.pages == page_num %}
<a href="{{ request.args|clean_querystring('page', page=pagination.get_page()) }}" class="btn btn-primary">{{page_num}}</a>
{% else %}
<a href="{{ request.args|clean_querystring('page', page=pagination.get_page()) }}" class="btn btn-outline-primary">{{page_num}}</a>
{% endif %}
{% endif %}
{% endfor %}
如果有人需要答案,我終於找到了一種方法:
{% for page_num in range(1, pagination.get_page_count() + 1) %}
{% if pagination.get_page() == page_num %}
<a href="./?{{ request.args|clean_querystring('page', page=page_num) }}" class="btn btn-primary">{{ page_num }}</a>
{% else %}
<a href="./?{{ request.args|clean_querystring('page', page=page_num) }}" class="btn btn-outline-primary">{{ page_num }}</a>
{% endif %}
{% endfor %}
現在我需要知道如果超過 30 頁時如何迭代頁面閾值,因為我不想顯示所有 30 頁。 如果有人有建議,請告訴我:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.