Zoeken…


Paginatieroute Voorbeeld met fles-sqlalchemie Paginate

In dit voorbeeld gebruiken we een parameter in de route om het paginanummer op te geven. We stellen een standaardwaarde van 1 in op de functieparameterpagina page=1 . We hebben een User in de database en we zoeken ernaar, in aflopende volgorde, waarbij eerst de nieuwste gebruikers worden getoond. We gebruiken vervolgens de paginate methode van het query object in flask-sqlalchemy. We geven dit vervolgens door aan render_template om te worden weergegeven.

@app.route('/users')
@app.route('/users/page/<int:page>')
def all_users(page=1):
    try:
        users_list = User.query.order_by(
            User.id.desc()
        ).paginate(page, per_page=USERS_PER_PAGE)
    except OperationalError:
        flash("No users in the database.")
        users_list = None

    return render_template(
        'users.html',
        users_list=users_list,
        form=form
    )

Paginering weergeven in Jinja

Hier gebruiken we het object dat we hebben doorgegeven aan render_template om de pagina's, de huidige actieve pagina en ook een vorige en volgende knoppen weer te geven als u naar de vorige / volgende pagina kunt gaan.

<!-- previous page -->
{% if users_list.has_prev %}
<li>
    <a href="{{ url_for('users', page=users_list.prev_num) }}">Previous</a>
</li>
{% endif %}

<!-- all page numbers -->
{% for page_num in users_list.iter_pages() %}
    {% if page_num %}
        {% if page_num != users_list.page %}
            <li>
                <a href="{{ url_for('users', page=page_num) }}">{{ page_num }}</a>
            </li>
        {% else %}
            <li class="active">
                <a href="#">{{ page_num }}</a>
            </li>
        {% endif %}
   {% else %}
       <li>
           <span class="ellipsis" style="white-space; nowrap; overflow: hidden; text-overflow: ellipsis">…</span>
       </li>
   {% endif %}
{% endfor %}

<!-- next page -->
{% if users_list.has_next %}
<li>
    <a href="{{ url_for('users', page=users_list.next_num) }}">Next</a></li>
{% endif %}
{% endif %}


Modified text is an extract of the original Stack Overflow Documentation
Licentie onder CC BY-SA 3.0
Niet aangesloten bij Stack Overflow