当前位置: 代码迷 >> python >> 你如何“清除”特定的 Flask 会话变量?
  详细解决方案

你如何“清除”特定的 Flask 会话变量?

热度:66   发布时间:2023-07-14 08:59:38.0

我看过很多关于清除 Flask 会话的示例和问题,但无法找到关于如何仅清除特定键或键集的明确答案。

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

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

if 'foo' in session:

这应该返回 False。

session.keys()你试过弹出键吗?

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

我记得我写的应用程序弹出元素的速度非常快,而且它的行为很奇怪(现在不记得这个特定案例),但我曾经从那时起在任何可能的地方使用 del。

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

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

使用del将是:

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

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