Ich habe derzeit ein Problem, die Seitenumbruch-Funktion in mein Projekt aufzunehmen. Ich weiß, es gibt LIMIT/OFFSET
oder yield_per()
, aber ich konnte sie nicht implementieren.Python Flask SQLAlchemy-Paginator Zugriff nächste Seite in HTML-Ansicht
Ich benutze SQLAlchemy nicht Flask-SQLAlchemy so paginate
wird nicht funktionieren.
Meine Datenbank ist nicht so groß. Ich versuche, Räume anzuzeigen, die von einem Benutzer hinzugefügt wurden. Alles in allem wird ein Benutzer 20 ~ Räume haben, große Benutzer vielleicht 100. Ich möchte auf der Profilseite die 6 zuletzt eingefügten Räume zeigen und wenn es mehr gibt, sollte es Paginierung geben, wie Seite 2 die nächsten 6 zeigt usw.
Ich verwende SQLAlchemy-Paginator.
Ich habe es bereits implementiert und getestet, es funktioniert gut. Es begrenzt auch schon die Ergebnisse abhängig davon, welche Seite ich bin. Aber wie greife ich während HTML auf die nächste Seite zu? Hier
ist der Python-Code:
@app.route("/user/logged_in")
@login_required
@check_confirmed
def logged_in():
if current_user.email_verified:
users_room = db_session.query(Zimmer).filter_by(users_id=current_user.id).order_by(desc("id"))
paginator = Paginator(users_room, 2)
for page in paginator:
print "page number of current page in iterator", page.number
print "this is a list that contains the records of current page", page.object_list
return render_template('logged_in.html', paginator=paginator)
return redirect(url_for('unconfirmed'))
Hier ist die Aussicht. Die Lösung muss irgendwo da sein. Ich kann auf Seiten von page.previous_page_number
oder page.next_page_number
zugreifen. Aber es gibt kein Beispiel in der Doku wie man es im Auge behält.
<div class="user-rooms">
<h2> Ihre Zimmer </h2>
{% for page in paginator %}
{% if page.number == 1 % }
{% for zimmer in page.object_list %}
{% if zimmer.users_id == current_user.id %}
<div class="col-sm-4 col-xs-6 col-xxs-12 img-holder">
<img src="../static/userimg/{{ zimmer.hauptbild }}"/>
<div class="buttons-del-work"> <a href="{{ url_for('edit_room', the_room_id=zimmer.id) }}" class="btn mybtn-work"> Bearbeiten </a> <a href="{{ url_for('delete_room', the_room_id=zimmer.id) }}" class="btn mybtn-del"> Löschen </a> </div>
</div>
{% endif %}
{% endfor %}
{% endif %}
{% endfor %}
Wenn ich manuell die Zahlen Seite ändern sie mir die richtigen Elemente zeigen, so fühle ich mich wie ich in der Nähe bin:
{% if page.number == 1 % }