【问题标题】:Flask, one flash message not getting displayed [duplicate]烧瓶,一条闪光消息没有显示[重复]
【发布时间】:2018-08-07 07:54:34
【问题描述】:

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

我更新了一个视图。它曾经从 javascript window.location 函数调用烧瓶路由,但现在使用 $.post() 将参数发送到路由。

flash 调用的位置没有改变(我在它之前放了一个 print 语句并执行,所以我知道解释器可以进行 flash 调用)。

路由方法中的所有代码都正确执行,但没有显示闪烁消息,我不知所措。 Google 搜索没有任何结果。

这是路由方法的最后3行

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

【问题讨论】:

    标签: python flask


    【解决方案1】:

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

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

    {% with messages = get_flashed_messages() %}
      {% if messages %}
        <ul class=flashes>
        {% for message in messages %}
          <li>{{ message }}</li>
        {% endfor %}
        </ul>
      {% endif %}
    {% endwith %}
    

    【讨论】:

    • 嘿。不,我已将其包括在内。如上所述,它适用于所有其他 flash 消息(上面的代码在 base.html 文件中,包含在所有模板中。其他 flash 消息在索引页面上正确显示)但是由于某种原因,只有这个特定的迷路了
    • 其他情况下是否优先使用flash?
    • 程序使用的所有其他 flash() 调用都与上面的示例相匹配,除了显示字符串参数
    • 所以它应该像其他情况一样打印 flash。我认为这只是一个愚蠢的错误(错字或类似的东西),但没有完整的代码,我无能为力。检查调试日志。尝试在函数开头移动闪存(db.commit 是否引发异常?)。所有调度都在同一个文件上? (烧瓶在多个文件上很弱)
    • 现在检查调试,消息被传递给 helpers.py 并被正确记录。我真的不知道发生了什么。无论如何感谢您的时间
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-26
    • 2021-06-28
    • 1970-01-01
    • 1970-01-01
    • 2016-03-26
    • 1970-01-01
    相关资源
    最近更新 更多