如何只清除特定的Flask会话变量?

时间:2018-09-23 06:52:57

标签: python flask

我已经看到了许多有关清除Flask会话的示例和问题,但是还无法找到有关如何仅清除特定键或一组键的明确答案。

如果我不想清除整个会话,如何才能完全删除(好像它不存在)特定密钥?

例如,我想清除session ['foo'],但保留session ['bar']。所以当我以后做时:

if 'foo' in session:

这应该返回False。

2 个答案:

答案 0 :(得分:3)

update起,您是否尝试弹出密钥?

session.keys()

答案 1 :(得分:0)

我记得写应用程序时弹出元素的速度非常快,并且表现得很怪异(现在不记得这个特殊的情况了),但是从那时起我就一直在尽可能地使用它。

如果要从会话中删除密钥(如果存在或不存在),可以使用pop

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

使用del将会是:

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

我之所以写这个答案是因为CSMaveric的评论,关于避免del。