我一直在尝试通过 Flask 和 Jinja 将简单的消息闪现到网页,但它总是导致 jinja 代码显示为简单文本。
这是我的app.py代码:
from flask import Flask, flash, redirect, render_template
app = Flask(__name__)
app.config['SECRET_KEY'] = '12345'
@app.route('/')
def index():
flash('Hello, this is a flash message!')
return render_template('index.html')
if __name__ == '__main__':
app.run(debug=True)
这是我的index.html代码:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Flash Message Example</title>
</head>
<body>
{% for mesg in get_flashed_messages() %}
<h1>{{ mesg }}</h1>
{% endfor %}
</body>
</html>
我的目录结构非常简单:
我几乎尝试了所有方法,查看并改编了多个教程,将程序简化为其骨架,卸载并重新安装 Flask,但 Jinja 代码仍然以文本形式出现,如下所示:
我在这里缺少什么?
您的代码很好,一切都设置正确。您似乎正在浏览器中手动打开
index.html
文件(即双击 index.html
)。为了使您的页面正确显示,您需要启动服务器,然后导航到主页路由才能看到正确的页面。
启动服务器:
python app.py
您应该得到如下输出:
* Serving Flask app 'app'
* Debug mode: on
WARNING: This is a development server. Do not use it in a production deployment. Use a production WSGI server instead.
* Running on http://127.0.0.1:5000
Press CTRL+C to quit
* Restarting with stat
* Debugger is active!
* Debugger PIN: xxx-xxx-xxx
然后,打开浏览器并导航至
http://127.0.0.1:5000
。页面应该正确显示。