Flask:当flash()在@ app.before_request中时,获取随机重复的flash消息

时间:2013-06-21 16:48:34

标签: python flask

当我在@ app.before_request中使用flash()时,我得到的似乎是随机数量的重复条目。一遍又一遍地刷新页面会给我1到4个重复的消息。

没有任何重定向。

我的代码很简单:

   if app.config['INSTANCE'] == 'DEV':
       flash("This data is from the development DB")

或者,我无法弄清楚如何通过get_flashed_messages()来访问/修改flash()似乎附加到模板以外的消息数组。谁知道怎么做?

1 个答案:

答案 0 :(得分:6)

您可以通过flashes = session.get('_flashes', [])访问等待消息的列表。你可以view the code on Github

关于你为什么会收到一些消息的说明,这是因为你正在发出多个请求(但可能不知道)。您的Web浏览器可能要求favicon.ico这是一个请求,因此会导致闪存等。如果您在调试模式下运行,您的控制台窗口将显示正在处理的所有请求。例如,在Chrome中加载一个简单的烧瓶示例会导致显示:

127.0.0.1 - - [21/Jun/2013 16:35:05] "GET / HTTP/1.1" 200 -
127.0.0.1 - - [21/Jun/2013 16:35:05] "GET /favicon.ico HTTP/1.1" 404 -

一个是我查看主页的请求,另一个是Chrome要求的图标(并且它被告知它不存在)。