重新启动后,Python flask flash消息异常仍然存在

重新启动后,Python flask flash消息异常仍然存在,python,flask,Python,Flask,我正在制作一个小烧瓶应用程序,其中我有如下内容: @app.route('/bye') def logout(): session.pop('logged_in', None) flash('Adiós') return redirect('/index') #!/usr/bin/env python # -*- coding: utf-8 -*- from flask import Flask app = Flask() @app.route('/bye')

我正在制作一个小烧瓶应用程序,其中我有如下内容:

@app.route('/bye')
def logout():
    session.pop('logged_in', None)
    flash('Adiós')
    return redirect('/index')
#!/usr/bin/env python
# -*- coding: utf-8 -*-


from flask import Flask
app = Flask()

@app.route('/bye') 
def logout():
    session.pop('logged_in', None)
    flash('Adiós')
    return redirect('/index')
不用说,当我运行应用程序并导航到“/bye”时,它给了我一个UnicodeDecodeError。现在,即使在重新启动应用程序之后,扩展基本模板(呈现消息)的每个页面上都会出现相同的unicodedecodeerror。并且始终使用相同的dump(),尽管在源代码中删除了闪存。我所能想到的就是什么废话?请帮忙

嗯,我必须重新启动计算机来清除愚蠢的会话缓存之类的东西。

我认为flash()实际上创建了一个名为session[''u flash']的会话。请参阅此代码。因此,您可能必须:

clear/delete the cookie 


Flask Flash将消息存储在会话cookie中,直到消息被成功“消费”。 如果在本例中得到UnicodeDecodeError(),则消息不会被使用,因此会一次又一次地出现错误

我的解决方案是从浏览器中删除cookie

由于我在使用本地化时遇到问题,我现在通过安装我的翻译对象解决了问题,如:

trans = gettext.GNUTranslations(...)
trans.install(unicode=True)

在我的python源文件中使用UTF-8编码,在翻译文件(.pot)中使用“Content Type:text/plain;charset=UTF-8\n”,

您使用的是非ascii字符串“adiós”,因此需要确保python将字符串处理为unicode,而不是ascii

将其添加到python文件的头中。这将告诉编译器您的文件包含utf8字符串

#!/usr/bin/env python
# -*- coding: utf-8 -*-
因此,您的代码如下所示:

@app.route('/bye')
def logout():
    session.pop('logged_in', None)
    flash('Adiós')
    return redirect('/index')
#!/usr/bin/env python
# -*- coding: utf-8 -*-


from flask import Flask
app = Flask()

@app.route('/bye') 
def logout():
    session.pop('logged_in', None)
    flash('Adiós')
    return redirect('/index')

谢谢,搜索了这么长时间,非常绝望,损失了大约5个小时。。。即使这个错误很久以前就被修复了。@codegeek链接需要更新,