【问题标题】:Flask flash() doesn't output anythingFlask flash() 不输出任何东西
【发布时间】:2022-10-13 23:28:25
【问题描述】:

烧瓶中的 flash() 函数似乎没有输出任何内容。 我有这部分代码(flask、flash、redirect_url等被导入)

    app.secret_key = "verysecretmuchsecure"

    @app.route('/')
    def index():
       return render_template('index.html')

    @app.route('/login/<message>')
    def login(message=None):
        print(flash(message))
        if (message != None):
            flash(message)
        else:
            flash(u'A default message')
        return redirect(url_for('index'))

然后是一个模板:

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

在无法弄清楚为什么这不起作用之后,我尝试将 flash(message) 输出到控制台,因为输出应该是一个列表(https://flask.palletsprojects.com/en/2.2.x/api/#flask.flash),但我只得到 None。我试图在这里和其他地方寻找类似的问题,但它们似乎都有其他问题,而不是 flash() 本身。

【问题讨论】:

  • 我不确定这是否是原因,但您在模板中有错字。消息查询中缺少复数“s”。应该是{% with messages = get_flashed_messages() %}
  • 是的。这似乎是问题所在。谢谢,我有两个不同的人来看它,我们都没有看到。我只是很惊讶我不能只打印(闪存(消息)),但作为一个列表,我想我可以在控制台中输出它。仍然返回无,嗯。但尽管如此,谢谢:)
  • flask.flash(message, category='message') 的返回值为 None,因此无法将任何内容打印到控制台。玩得开心你的项目。

标签: python flask


【解决方案1】:

正如Detlef 所指出的那样,{% with messages = get_flashed_messages() %} 中有一个错字,修复了消息闪烁的问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-10-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-09
    相关资源
    最近更新 更多