问题描述
我看过很多关于清除 Flask 会话的示例和问题,但无法找到关于如何仅清除特定键或键集的明确答案。
如果我不想清除整个会话,我如何才能完全删除(好像它从未存在过)特定密钥?
例如,我想清除 session['foo'],但保留 session['bar']。 所以当我以后做:
if 'foo' in session:
这应该返回 False。
1楼
从session.keys()
你试过弹出键吗?
# remove the keyname from the session if it is there
session.pop('key_name')
2楼
我记得我写的应用程序弹出元素的速度非常快,而且它的行为很奇怪(现在不记得这个特定案例),但我曾经从那时起在任何可能的地方使用 del。
如果您想从会话中删除密钥(如果它存在或不存在),您可以使用pop
:
flask.session.pop('key_name', None)
使用del
将是:
try:
del flask.session['key_name']
except KeyError:
pass
我写这个答案是因为 CSMaveric 评论,关于避免 del。