Python Flask – Creación y manipulación de sesiones de usuario

Flask utiliza la extensión “Flask-Session” para gestionar sesiones de usuario de manera eficiente. Aquí te muestro cómo crear y manipular sesiones de usuario en Flask:

Paso 1: Instalar Flask-Session

Primero, debes instalar la extensión Flask-Session en tu entorno virtual:

pip install Flask-Session

Paso 2: Configurar Flask-Session

En tu aplicación Flask, debes configurar Flask-Session para que funcione con tu aplicación. Debes definir una clave secreta y especificar el tipo de almacenamiento para las sesiones. Por ejemplo:

from flask import Flask, session, request, redirect, url_for

# Importar la extensión Flask-Session
from flask_session import Session

app = Flask(__name__)
app.config['SECRET_KEY'] = 'mi_clave_secreta'  # Clave secreta para proteger sesiones
app.config['SESSION_TYPE'] = 'filesystem'  # Almacenar sesiones en el sistema de archivos
Session(app)

# Iniciar sesión y almacenar un valor
@app.route('/iniciar_sesion')
def iniciar_sesion():
    session['usuario'] = 'usuario1'
    return 'Sesión iniciada'

# Acceder a los datos de la sesión
@app.route('/perfil')
def perfil():
    if 'usuario' in session:
        usuario = session['usuario']
        return f'Bienvenido, {usuario}'
    else:
        return redirect(url_for('iniciar_sesion'))

# Cerrar sesión
@app.route('/cerrar_sesion')
def cerrar_sesion():
    session.pop('usuario', None)
    return 'Sesión cerrada'

if __name__ == '__main__':
    app.run()

Paso 3: Manipular Sesiones de Usuario

Ahora puedes manipular sesiones de usuario en tus rutas y vistas. Puedes almacenar y acceder a datos específicos de usuario en la sesión. En el ejemplo, hay una vista que inicia una sesión y almacena un valor:

@app.route('/iniciar_sesion')
def iniciar_sesion():
    session['usuario'] = 'usuario1'
    return 'Sesión iniciada'

Y hay una vista que accede a los datos de la sesión:

@app.route('/perfil')
def perfil():
    if 'usuario' in session:
        usuario = session['usuario']
        return f'Bienvenido, {usuario}'
    else:
        return redirect(url_for('iniciar_sesion'))

En este ejemplo, cuando un usuario visita /iniciar_sesion, se inicia una sesión y se almacena el valor ‘usuario1’ en la sesión. Luego, cuando un usuario visita /perfil, se verifica si la clave ‘usuario’ existe en la sesión y se muestra un mensaje de bienvenida.

Paso 4: Cerrar Sesión

Para cerrar la sesión de un usuario, simplemente elimina los datos de la sesión. Por ejemplo:

@app.route('/cerrar_sesion')
def cerrar_sesion():
    session.pop('usuario', None)
    return 'Sesión cerrada'

En el ejemplo, la función session.pop('usuario', None) elimina la clave ‘usuario’ de la sesión si existe.

Estos son los conceptos básicos para crear y manipular sesiones de usuario en Flask. Puedes adaptar estas ideas para realizar autenticación, personalización de la experiencia del usuario y almacenamiento de datos temporales en tu aplicación según tus necesidades.

Probar con:

localhost:5000/iniciar_sesion
localhost:5000/perfil
localhost:5000/cerrar_sesion

Deja un comentario