Gestion des sessions en flask [python]
publié le 07 mars 2026
Guerre des sessions en flask, les sessions sont multiples et variées. Attention à ne pas s'y perdre !
Depuis les 3 semaines, 4 types de sessions ont déjà été trouvés:
session SQL (au niveau de la BDD): elle lie un ensemble de requêtes SQL entre elles, se finissant par un commit pour rendre effectifs le résultat ou un rollback pour annuler les modifications.
session ORM (au niveau de sqlAlchemy): elle peut garder en locale une vue des requêtes SQL effectuées précédemment. La documentation officiellement de ce type de session est disponible sur la page suivante: https://docs.sqlalchemy.org/en/20/orm/session_basics.html
session HTTP (au niveau du navigateur): Elle correspond à la navigation d'un utilisateur sur le site web et peut comprendre plusieurs requêtes html séparés. C'est dans cette session qu'il est possible de garder l'information qu'un utilisateur est authentifier ou non.
session HTTP (au niveau du serveur web): C'est le pendant de la session précédente à la différence que les informations sont gardées sur le serveur. La sessions côté serveur doit se baser sur un identifiant stocké dans la session HTTP navigateur pour faire le client entre un utilisateur précis et ses données.
Chacune de ces session est de nature différente, avec des propriétés et méthodes différentes et une durée de vie différente.
Ainsi pour ne pas les confondre, il est possible de les utiliser en les renommant avec leur rôle respectif:
from sqlalchemy.orm import Session as orm_session
from flask import session as http_client_session
from flask_session import Session as http_server_session
from sqlalchemy.orm import declarative_base, sessionmaker
sql_session = sessionmaker(bind=engine)
En faisant ainsi, on ne se trompe plus entre les pommes, les poires et les bananes...