Jinja 代码以文本形式从 Flask 传输到 HTML 网页

问题描述 投票:0回答:1

我一直在尝试通过 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>

我的目录结构非常简单:

directory structure

我几乎尝试了所有方法,查看并改编了多个教程,将程序简化为其骨架,卸载并重新安装 Flask,但 Jinja 代码仍然以文本形式出现,如下所示: display

我在这里缺少什么?

python html flask flash jinja2
1个回答
0
投票

您的代码很好,一切都设置正确。您似乎正在浏览器中手动打开

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
。页面应该正确显示。

© www.soinside.com 2019 - 2024. All rights reserved.