4 votes

Comment " effacer " uniquement des variables de session Flask spécifiques ?

J'ai vu de nombreux exemples et questions sur l'effacement d'une session Flask, mais je n'ai pas été en mesure de trouver une réponse claire sur la façon d'effacer uniquement une clé spécifique ou un ensemble de clés.

Si je ne veux pas effacer toute la session, comment puis-je supprimer complètement (comme si elle n'avait jamais existé) une clé spécifique ?

Par exemple, je veux effacer session['foo'], mais conserver session['bar']. Ainsi, lorsque je ferai plus tard :

if 'foo' in session:

Le résultat doit être False.

8voto

CSMaverick Points 1153

De session.keys() Avez-vous essayé d'extraire les clés ?

# remove the keyname from the session if it is there
session.pop('key_name')

2voto

Abc Xyz Points 570

Je me souviens d'avoir écrit une application qui faisait apparaître des éléments très rapidement et qui se comportait bizarrement (je ne me souviens plus de ce cas précis) mais j'utilisais dès lors le del partout où je le pouvais.

Si vous souhaitez supprimer une clé de la session, qu'elle existe ou non, vous pouvez utiliser l'option pop :

flask.session.pop('key_name', None)

avec del ce serait le cas :

try:
    del flask.session['key_name']
except KeyError:
    pass

J'ai écrit cette réponse à la suite des commentaires de CSMaveric sur la nécessité d'éviter les délits.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X