Übergabe von Variablen zwischen Flask-Seiten
In Flask kann die Übergabe von Variablen zwischen Seiten durch verschiedene Methoden erreicht werden, darunter Sitzungen, Abfrageparameter usw args anzeigen.
Sitzungen
Sitzungen bieten eine einfache Möglichkeit, Python-Werte für den späteren Abruf zu speichern. Sie verhalten sich wie ein persistentes Wörterbuch, das mehrere Anfragen übersteht. Um Sitzungen zu verwenden, weisen Sie einfach dem Wörterbuch „Sitzung“ eine Variable zu:
@app.route('/a') def a(): session['my_var'] = 'my_value' return redirect(url_for('b'))
Auf der Folgeseite kann wie folgt auf den Wert zugegriffen werden:
@app.route('/b') def b(): my_var = session.get('my_var', None) return my_var
Abfrage Parameter
Abfrageparameter ermöglichen es Ihnen, Daten von einer Vorlagen-URL direkt an den Seitenhandler zu übergeben. Dies ist nützlich, um kleine Datenmengen zu übergeben, die nicht für spätere Anfragen aufbewahrt werden müssen. Um Abfrageparameter zu verwenden, hängen Sie den Parameternamen und -wert an die URL in der Vorlage an:
<a href="{{ url_for('b', my_var='my_value') }}">Send my_value</a>
Dadurch wird eine URL wie /b?my_var=my_value erstellt, auf die im Seitenhandler wie folgt zugegriffen werden kann :
@app.route('/b') def b(): my_var = request.args.get('my_var', None)
Argumente anzeigen
Argumente anzeigen bieten eine Möglichkeit, Daten aus dem zu übergeben URL direkt in die Ansichtsfunktion einfügen. Dies ähnelt Abfrageparametern, die Daten werden jedoch nicht in der URL angezeigt. Um Ansichtsargumente zu verwenden, kommentieren Sie die Routenfunktion mit den erwarteten Argumenttypen:
@app.route('/b/<my_var>') def b(my_var): # Use 'my_var' in your view function
Beachten Sie, dass Ansichtsargumente nicht für die Übergabe beliebiger Daten verwendet werden können, da sie typannotiert sind.
Das obige ist der detaillierte Inhalt vonWie kann ich Variablen zwischen Seiten in einer Flask-Anwendung übergeben?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!