Python 2.7 如何清除烧瓶会话?

Python 2.7 如何清除烧瓶会话?,python-2.7,flask,Python 2.7,Flask,在导入flask时,我们导入模块,如session等 SecureCookieSession是一种字典,可以使用会话访问 现在,我尝试清除我在构建网站时使用的所有垃圾变量 stackoverflow上的一个答案使用了类似于session.clear()的命令来清除会话内容。但是这样的命令会给出一个错误,即不存在这样的命令 有人能为我指出如何清除SecureCookieSession以及如何在每次我关闭服务器或网站时清除会话吗?没有办法清除会话或任何东西 只需更改app.config[“SECRE

在导入flask时,我们导入模块,如
session

SecureCookieSession
是一种字典,可以使用会话访问

现在,我尝试清除我在构建网站时使用的所有垃圾变量

stackoverflow上的一个答案使用了类似于
session.clear()
的命令来清除会话内容。但是这样的命令会给出一个错误,即不存在这样的命令

有人能为我指出如何清除
SecureCookieSession
以及如何在每次我关闭服务器或网站时清除会话吗?

没有办法清除
会话或任何东西

只需更改
app.config[“SECRET\u KEY”]
即可删除会话字典中的内容

from flask import session

session.clear()
我用烧瓶这样的会话,它确实有效。
虽然我不使用SecureCookieSession,但它可能会有所帮助。

您也可以迭代会话并为会话中的每个键调用
session.pop()。Pop将从会话中删除变量,您不必不断更新密钥

for key in list(session.keys()):
     session.pop(key)
正如在中以及在相应的中指出的,您可以简单地执行以下操作:

尽管,正如在评论中公正地指出的那样:

如果您还在应用程序中使用闪存消息,则应该考虑闪存的消息存储在会话中,因此,如果您清除了<代码>会话< /代码>,则可以在它们闪现之前擦除。 我的建议是利用列表理解:

对于
循环,它与中的基本相同,尽管是一个单行程序。我们可以很容易地从
会话
(或添加任何其他条件)中删除所有内容,除了闪现的消息,如下所示:


作为一个附加选项,如果您使用的是
flask\u login
包,那么您所要做的就是在请求上下文中调用
logout\u user

logout\u user
功能弹出会话键,如其他答案中所述,同时清理
memory
cookie并在
login\u管理器中强制重新加载用户。它还发送一个
注销
信号(如果信号处理在应用程序中很重要)


如果要弹出并将其置于
g
,可以尝试:

来自flask导入g,会话
我的值列表=('sys\u info','msg')
[setattr(g,s_k,session.pop(s_k)),如果s_k在session.keys()中,则在my_value_列表中为s_k设置属性]

如下所示,可以使用
session.clear()
清除会话,并将此导入
从flask导入会话中包括在内,这样做将立即使所有访客cookie无效,并迫使他们重新登录,而不是投票拒绝此帖子,让我们让每个人都做得更好!重置密钥的点是有效点!注意:如果你还在你的应用程序中使用闪存消息,你应该考虑闪存的消息被存储在会话中,因此,如果你清除了会话,闪存的消息会在闪现之前被擦除。我们可以在主动请求上下文中这样做,只对吗?@ GautamJain,是的!否则,“在请求上下文之外工作”将出现运行时错误,它应该是
session.pop(key)
而不是
session.pop[key]
很好!EditedI收到一个运行时错误“字典在迭代期间更改了大小”。我更成功的是:
key\u list=list(session.keys())for key-in-key\u list:session.pop(key)
您可能需要重新考虑接受哪个答案。
from flask import session

session.clear()
[session.pop(key) for key in list(session.keys())]
[session.pop(key) for key in list(session.keys()) if key != '_flashes']
from flask_login import logout_user
logout_user()