关于python:Flask,没有显示一条flash消息

Flask, one flash message not getting displayed

本问题已经有最佳答案,请猛点这里访问。

我知道Flash设置正确,因为所有其他的Flash消息都显示正确。

我更新了一个视图。它以前从javascript window.location函数调用flask路由,但现在使用$.post()向路由发送参数。

flash调用的位置没有改变(我把一个print语句放在它前面,然后执行,这样我就知道了解释器进入flash调用)。

路由方法中的所有代码都正确地执行,但闪存消息没有显示,我很困惑。谷歌搜索没有结果。

这是路线法的最后三行

1
2
3
db.session.commit()
flash('Database Updated')
return redirect(url_for('index'))

我认为(但我不确定,因为你没有包括index的代码),索引中的模板不包括flash。您需要格式化索引页(或基本模板)来显示闪存。

查看以下示例:http://flask.pocoo.org/docs/0.12/patterns/flashing/,实际上:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
{% with messages = get_flashed_messages() %}
  {% if messages %}
    <ul class=flashes>
    {% for message in messages %}
     
<li>
{{ message }}
</li>

    {% endfor %}
   
</ul>

  {% endif %}
{% endwith %}