我一直无法让闪光灯功能在 flask 中工作。这是我的代码。
#!venv/bin/python3
from flask import Flask, flash
app = Flask(__name__)
app.config['SECRET_KEY'] = '12345'
@app.route('/')
def index():
flash('Hi')
return 'Hello'
if __name__ == '__main__':
app.run()
我期望这会闪现一条消息说嗨,但当我加载页面时,没有出现闪光框。我不明白什么?
3条答案
按热度按时间xxls0lw81#
我认为主要的问题是你返回的是一个字符串,而不是一个处理flash并将其转换为显示消息的render_template。Check out this documentation code here for an example of how to handle flashes
所以我建议尝试:
return render_template('index.html')
然后使用index.html文件设置处理flash消息的代码。我有一种感觉,就像您在这里所做的那样,如果没有代码可以理解flash的地方,那么只返回一个字符串将给予一个null结果。
njthzxwz2#
ou可以做以下更改在您的代码导入重定向和重定向到任何html页面显示 Flink 的消息。在本例中,在index.html和index.html页面中,您必须使用jinja模板来获取flash消息并将其显示在页面中,因为我们使用get_flashed_messages()
在index.html文件中添加以下代码
xmjla07d3#
这个问题已经问了一段时间了。我会把我的答案贴在这里,因为我不知何故得到了这个问题。
正如Miguel Grinberg在“Flask Web开发:使用Python开发Web应用程序”:
调用
flash()
不足以获得显示的消息;应用程序使用的模板需要呈现这些消息。因此,任何有同样问题的人,只要确保您将
get_flashed_messages()
函数添加到模板中,然后显示一条消息即可。您可以查看以下内容作为参考:Python Flask flash not working correctly,
当然还有上面提到的米格尔·格林伯格的书第四章。
希望这会有帮助。