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 !
Lors de ces 3 dernières semaines, 4 types de session ont été découvertes:
session SQL (au niveau de la BDD): Elle lie un ensemble de requêtes SQL entre elles, se finissant par un commit pour rendre effectif 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 officielle 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ées. C'est dans cette session qu'il est possible de garder l'information selon laquelle un utilisateur est authentifié 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, les cerises et les bananes...