English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Im Gegensatz zum Cookie werden Sitzungsdaten auf dem Server gespeichert. Eine Sitzung ist der Zeitraum, in dem der Client sich bei dem Server anmeldet und abmeldet. Daten, die in dieser Sitzung gespeichert werden müssen, werden im temporären Verzeichnis auf dem Server gespeichert.
Jede Sitzung wird einer Sitzungs-ID zugeordnet. Sitzungsdaten werden im Cookie-Header gespeichert und vom Server verschlüsselt signiert. Für diese Verschlüsselung benötigt die Flask-Anwendung eine definierte SECRET_KEY.
Das Sitzungsobjekt ist auch ein Dictionary-Objekt, das aus Schlüssel-Wert-Paaren von Sitzungsvariablen und zugehörigen Werten besteht.
Beispielsweise, um die Sitzungsvariable 'username' zu setzen, verwenden Sie den Befehl -
# Dateiname : example.py # Copyright : 2020 Durch w3codebox # Autor durch: de.oldtoolbag.com # Datum : 2020-08-08 Session['username'] = 'admin'
Um Sitzungsvariablen zu löschen, verwenden Sie die Methode pop()
# Dateiname : example.py # Copyright : 2020 Durch w3codebox # Autor durch: de.oldtoolbag.com # Datum : 2020-08-08 session.pop('username', None)
Nachfolgender Code ist ein einfaches Beispiel, wie eine Sitzung in Flask funktioniert. URL => '/' Hinweis auf die Anmeldung des Benutzers, da die Sitzungsvariable username nicht gesetzt ist.
# Dateiname : example.py # Copyright : 2020 Durch w3codebox # Autor durch: de.oldtoolbag.com # Datum : 2020-08-08 @app.route('/"> def index(): if 'username' in session: username = session['username'] return 'Logged in as ' + username + "><br></b> + \ "<b><a href="/logout'>click here to log out</">/b>" return "Sie sind nicht angemeldet <br><a href="/login'></b>" + \ "hier klicken, um sich anzumelden</b></a>"
Wenn der Benutzer die URL => ansieht/wenn der login() Funktion eine Ansicht angezeigt wird, da sie über das GET-Verfahren aufgerufen wird, öffnet sich ein Login-Formular.
Nachdem das Formular ausgefüllt wurde, wird es zur URL => neu eingereicht / /“. Dies ist der Zeitpunkt
# Dateiname : example.py # Copyright : 2020 Durch w3codebox # Autor durch: de.oldtoolbag.com # Datum : 2020-08-08 @app.route('/@app.route('login', methods=['GET', 'POST']) def login(): if request.method == 'POST': session['username'] = request.form['username'] return redirect(url_for('index')) return ''' <form action="" method="post"> <p><input type="text" name="username">/></p> <p><input type="submit" value="Login">/></p> </form> '''
Diese Anwendung enthält auch eine logout() Ansichtsfunktion, die den Wert der Sitzungsvariable 'username' löscht. URL wird weitergeleitet zu ‘/‘ Zeigt die Startseite an.
# Dateiname : example.py # Copyright : 2020 Durch w3codebox # Autor durch: de.oldtoolbag.com # Datum : 2020-08-08 @app.route('/logout') def logout(): # Entfernen Sie den Benutzernamen aus der Session, falls er vorhanden ist session.pop('username', None) return redirect(url_for('index'))
Führen Sie die Anwendung aus und rufen Sie die Hauptseite auf (stellen Sie sicher, dass das secret_key der Anwendung eingerichtet ist).
# Dateiname : example.py # Copyright : 2020 Durch w3codebox # Autor durch: de.oldtoolbag.com # Datum : 2020-08-08 from flask import Flask, session, redirect, url_for, escape, request app = Flask(__name__) app.secret_key = 'any random string’
Der vollständige Code ist wie folgt dargestellt -
# Dateiname : example.py # Copyright : 2020 Durch w3codebox # Autor durch: de.oldtoolbag.com # Datum : 2020-08-08 from flask import Flask from flask import render_template from flask import request from flask import make_response from flask import Flask, session, redirect, url_for, escape, request app = Flask(__name__) app.secret_key = 'fkdjsafjdkfdlkjfadskjfadskljdsfklj' @app.route('/"> def index(): if 'username' in session: username = session['username'] return 'Der angemeldete Benutzername ist:' + username + "><br></b> + \ "<b><a href="/logout'>Klicken Sie hier, um auszologgen</">/b>" return "Sie sind nicht angemeldet, <br><a href="/login'></b>" + \ "Klicken Sie hier, um sich anzumelden</b></a>" @app.route('/@app.route('login', methods=['GET', 'POST']) def login(): if request.method == 'POST': session['username'] = request.form['username'] return redirect(url_for('index')) return ''' <form action="" method="post"> <p><input type="text" name="username"/></p> <p><input type="submit" value="Anmelden"/></p> </form> ''' @app.route('/logout') def logout(): # Entfernen Sie den Benutzernamen aus der Session, falls er vorhanden ist session.pop('username', None) return redirect(url_for('index')) if __name__ == '__main__': app.run(debug=True)
Die Ausgabe wird wie folgt angezeigt. Klicken Sie auf den Link “ Klicken Sie hier, um sich anzumelden
Dieser Link wird zu einer anderen Oberfläche weitergeleitet. Geben Sie 'admin' ein.
Auf dem Bildschirm wird eine Nachricht angezeigt: Der Anmeldebenutzername ist: adminWie folgt -