English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
A diferencia de los cookies, los datos de sesión se almacenan en el servidor. La sesión es el intervalo de tiempo en el que el cliente se conecta al servidor y se desconecta. Los datos que se deben almacenar en esta sesión se almacenan en un directorio temporal en el servidor.
Asignar un ID de sesión a cada sesión del cliente. Los datos de sesión se almacenan en la parte superior del cookie, y el servidor los firma de manera encriptada. Para este encriptado, el aplicación Flask necesita una definición SECRET_KEY.
El objeto de sesión también es un objeto de diccionario que contiene pares de clave y valor con variables de sesión y valores asociados.
Por ejemplo, para configurar la variable de sesión 'username', utilice la siguiente instrucción -
# Nombre de archivo : example.py # Derechos de autor : 2020 Por w3codebox # Autor por: es.oldtoolbag.com # Fecha : 2020-08-08 Session['username'] = 'admin'
Para eliminar la variable de sesión, utilice el método pop().
# Nombre de archivo : example.py # Derechos de autor : 2020 Por w3codebox # Autor por: es.oldtoolbag.com # Fecha : 2020-08-08 session.pop('username', None)
El siguiente código es un simple ejemplo de cómo funciona la sesión en Flask. URL => '/Sugerencia: pida al usuario que inicie sesión, ya que la variable de sesión username no se ha configurado.
# Nombre de archivo : example.py # Derechos de autor : 2020 Por w3codebox # Autor por: es.oldtoolbag.com # Fecha : 2020-08-08 @app.route('/) def index(): if 'username' in session: username = session['username'] return 'Logged in as ' + username + "<br>" + \ "<b><a href="/logout'>click here to log out</">/b>" return "No ha iniciado sesión <br><a href="/login'></b>" + \ "haga clic aquí para iniciar sesión</b></a>"
Cuando el usuario navega a URL=>'/cuando se llama a la función login() porque se llama mediante el método GET, se abre un formulario de inicio de sesión.
El formulario se envía nuevamente a URL=> /login, ahora la variable de sesión está configurada. La aplicación se redirige a URL=> /。 En este momento, encuentre la variable de sesión: username。
# Nombre de archivo : example.py # Derechos de autor : 2020 Por w3codebox # Autor por: es.oldtoolbag.com # Fecha : 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> '''
La aplicación también contiene una función de vista logout() que elimina el valor de la variable de sesión 'username'. Se realiza un redireccionamiento URL a '/‘ Muestra la página de inicio.
# Nombre de archivo : example.py # Derechos de autor : 2020 Por w3codebox # Autor por: es.oldtoolbag.com # Fecha : 2020-08-08 @app.route('/logout') def logout(): # Eliminar el nombre de usuario de la sesión si está allí session.pop('username', None) return redirect(url_for('index'))
Ejecute la aplicación y acceda a la página principal (asegúrese de configurar la clave secreta de la aplicación).
# Nombre de archivo : example.py # Derechos de autor : 2020 Por w3codebox # Autor por: es.oldtoolbag.com # Fecha : 2020-08-08 from flask import Flask, session, redirect, url_for, escape, request app = Flask(__name__) app.secret_key = 'any random string’
El código completo se muestra a continuación -
# Nombre de archivo : example.py # Derechos de autor : 2020 Por w3codebox # Autor por: es.oldtoolbag.com # Fecha : 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 'El nombre de usuario de inicio de sesión es:' + username + "<br>" + \ "<b><a href="/cerrar sesión aquí</">/b>" return "No ha iniciado sesión, <br><a href="/login'></b>" + \ "Haga clic aquí para iniciar sesión</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="Iniciar sesión"/></p> </form> ''' @app.route('/logout') def logout(): # Eliminar el nombre de usuario de la sesión si está allí session.pop('username', None) return redirect(url_for('index')) if __name__ == '__main__': app.run(debug=True)
La salida se mostrará como se muestra a continuación. Haga clic en el enlace: Haga clic aquí para iniciar sesión
El enlace se redirigirá a otra interfaz. Ingrese 'admin'.
La pantalla mostrará el mensaje: El nombre de usuario del usuario de inicio de sesión es: adminComo se muestra a continuación -