Artículos
Python

Sesión en Flask

06/Oct/2016

Hoy vamos a ver cómo podemos manejar una sesión en Flask para poder almacenar información entre cada una de las peticiones que hagamos sobre nuestra aplicación.

Objeto Flask Session

Lo primero que tenemos que saber es que el objeto que gestión la sesión en Flask es session. Por lo tanto lo primero que tenemos que hacer es importar dicho objeto de Flask.

from flask import Flask, session 

Objeto Flask Session y las cookies

Es importante saber cómo Flask gestiona las sesiones, ya que no utiliza un espacio de memoria entre cada una de las peticiones, aunque podríamos llegar a extenderlo e implementarlo, si no que lo que hace, por defecto, es crear una cookie con el contenido de la sesión.

Para poder crear la cookie y cifrar su contenido necesita una clave secreta. Definiremos la clave secreta de la siguiente forma:

app.secret_key = 'esto-es-una-clave-muy-secreta'

Cómo podemos apreciar en el navegador aparece la cookie con los datos de la sesión cifrados.

Flask Session

Acceso a Flask Session

Ahora vamos a añadir contenido a la sesión. Por ejemplo, en un primer método vamos a pintar un formulario que pida los datos al usuario y estos los guarde en memoria.

@app.route('/saludo',methods=['POST'])
def saludo():
    nombre = request.form['nombre']
    apellido = request.form['apellido']
    session['nombre'] = nombre
    session['apellido'] = apellido
    return 'Hola ' + nombre + ' ' + apellido

Vemos que utilizamos la siguiente estructura para guardar datos en sesión.

session['nombre_variable'] = 'valor'

Lo siguiente será consultar esta información de la sesión de Flask y utilizar su contenido. A tl respecto hemos creado un método que pinta esta información.

@app.route('/datos-sesion',methods=['GET'])
def datos_sesion():
    if 'nombre' in session:
        nombre = session['nombre']
    else:
        nombre = ''

    if 'apellido' in session:
        apellido = session['apellido']
    else:
        apellido = ''

    return 'Datos Sesion: ' + nombre + ' ' + apellido

Vemos que utilizacion la misma estructura que antes, pero sin asignación, para poder mostrar el contenido.

session['nombre_variable']

Es interesante también validar que la variable existe en sesión, antes de acceder a ella. Es por ello que hemos utilizado la estructura in para realizar esta validación.

if 'nombre' in session:
  nombre = session['nombre']

De esta forma ya hemos visto cómo podemos manejar la sesión en Flask.

Código Fuente

Descárgate el código fuente de Sesión en Flask
Y si te ha gustado nuestro código fuente puedes regalarnos una estrella Star
Suscribir
Notificar de
guest
5 Comentarios
Recientes
Anteriores Más votados
Opiniones integradas
Ver todos los comentarios