我无法使闪光灯功能在烧瓶中工作。这是我的代码。
#!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()
Run Code Online (Sandbox Code Playgroud)
我希望这会闪烁一条消息,提示您好,但是当我加载页面时,不会出现闪烁框。我在这里不明白什么?
我认为主要问题是您返回的是字符串,而不是处理Flash并将其转换为显示消息的render_template。在此处查看此文档代码,以获取有关如何处理闪光灯的示例
所以我建议尝试: return render_template('index.html')
然后使用index.html文件设置处理Flash消息的代码。我有一种感觉,就像您在此处所做的那样,仅返回一个字符串,而没有任何地方可以让代码理解闪存,则将返回空结果。
问这个问题已经有一段时间了。我会在这里发布我的答案,因为我以某种方式遇到了这个问题。
正如 Miguel Grinberg 在“Flask Web 开发:使用 Python 开发 Web 应用程序”中所写:
呼叫
flash()不足以显示消息;应用程序使用的模板需要呈现这些消息。
因此,任何遇到相同问题的人,只要确保您将该get_flashed_messages()功能添加到模板中,然后显示一条消息即可。对于参考,您可以查看:
当然还有上面提到的 Miguel Grinberg 的书,第 4 章。
希望这会有所帮助。
小智 5
#!venv/bin/python3
from flask import Flask, flash, redirect
app = Flask(__name__)
app.config['SECRET_KEY'] = '12345'
@app.route('/')
def index():
flash('Hi')
return redirect('index.html')
return render_template('index.html')
if __name__ == '__main__':
app.run()
Run Code Online (Sandbox Code Playgroud)
您可以在代码导入重定向中进行以下更改并将其重定向到任何 html 页面以显示闪烁的消息。我们使用 get_flashed_messages() 的页面
在 index.html 文件中添加以下代码
<body>
{% for mesg in get_flashed_messages() %}
<h1>{{ mesg }}</h1>
{% endfor %}
</body>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1657 次 |
| 最近记录: |