重新启动后,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链接需要更新,