【发布时间】: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,因此无法将任何内容打印到控制台。玩得开心你的项目。