El uso de la sesión en cualquier sistema web se utiliza para almacenar información relacionada con un usuario en la misma se guardan datos como el del nombre, identificador, es decir, de un usuario autenticado como veremos en la siguiente sección; de momento, no tenemos un uso para la misma así que seguiremos empleando la sesión en posteriores capítulos y veremos algunos ejemplos de su uso.
Otro ejemplo común del uso de la sesión es de los carritos de compras, para registrar cada uno de los productos que se van a comprar.
Los datos almacenados en la sesión son datos temporales, ya que la sesión eventualmente caducará.
Usualmente se va modificando la sesión, entiéndase agregando, actualizado y eliminando referencias a medida que se realizan peticiones al servidor, por ejemplo, cuando un usuario se va a autenticar tras un login exitoso, se registran los datos del usuario autenticado en la sesión, cuando va a cerrar sesión, se destruyen estos datos, si tienes un carrito de compra, al momento de hacer la compra, se eliminan todos estos datos de la sesión.
Para utilizar la sesión se debe de establecer una clave secreta, la cual, se encuentra establecida desde el inicio del proyecto en el archivo de configuración:
app.secret_key = b'_5#y2L"F4Q8z\n\xec]/'
Primeras pruebas con la sesión
Para usar la sesión, debemos de importar el objeto llamado session que forma parte del framework:
from flask import session
Con esto, podemos establecer datos como en la sesión como si fuera un array:
session['username'] = 'user'
Y obtener estos datos mediante:
session['username']
O remover los datos:
session.pop('username', None)
Puedes ver un ejemplo completo, implementando los siguientes controladores en algún archivo de pruebas:
from flask import session
***
@app.route('/test/session/check')
def test_session_check():
if 'username' in session:
return 'Logged in as '+session["username"]
return 'You are not logged in'
@app.route('/test/session/set')
def test_session_set():
session['username'] = 'user'
return 'Test'
@app.route('/test/session/pop')
def test_session_pop():
session.pop('username', None)
return 'Test'
Y evaluar el resultado.
Desarrollo con Laravel, Django, Flask, CodeIgniter, HTML5, CSS3, MySQL, JavaScript, Vue, Android, iOS, Flutter