Outils pour utilisateurs

Outils du site


Panneau latéral

Plan du Site:

python:flask:session

Session

Prérequis

Avoir défini une clé dans la valeur SECRET_KEY (voir la page Configuration)

La valeur de la SECRET_KEY se retrouve dans le tableau app.config ou directement dans app.secret_key.

Importer l'objet session :

from flask import session

Stocker une valeur dans la session

Dès qu'on écrit quelque chose dans la session, un cookie est enregistré dans le navigateur. Le nom du cookie est “session”. Ce cookie est illisible si on ne possède pas la SECRET_KEY de l'application.

session["USERNAME"] = "Marc"

Lire une valeur dans la session

name = session.get("USERNAME")
 
# OU
 
name = session["USERNAME"]

Si la valeur n'existe pas dans la session, ça renvoie None :

if session.get("USERNAME") is not None:
    success()
else:
    error()

Tester l'existence d'une valeur avec l'opérateur in :

if "username" in session:
    return session["username"]

Depuis un template, accéder au contenu de la session comme ceci :

{{ session.USERNAME }}
{{ session["USERNAME"] }}

Supprimer une valeur de la session

session.pop("USERNAME", None)

Durée de validité de la session

Par défaut le cookie de session expire à la fermeture du navigateur.

Pour que la session reste ouverte pendant 31 jours (la valeur par défaut) :

  • La valeur de app.config[“PERMANENT_SESSION_LIFETIME”] est déjà initialisée à 31 jours par défaut
  • Mettre session.permanent = True lors d'une connexion réussie
@app.route("/login")
def login():
 
    ...
 
    if password_is_ok(...):
        ...
        session['username'] = username
        session.permanent = True
python/flask/session.txt · Dernière modification: 2023/05/12 13:50 par marclebrun