簡體   English   中英

如何使用 Peewee Flask 創建頁面分頁?

[英]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) }}">&laquo; Previous {{ pagination.get_page() - 1 }} / {{ pagination.get_page_count() }}</a></li>
    {% else %}
       <li class="previous disabled"><a href="#">&laquo; 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() }} &raquo;</a></li>
    {% else %}
       <li class="next disabled"><a href="#">Next &raquo;</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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM