Flask模板中基础if语句无法正常运行,请求技术帮助
Flask模板if语句不工作的修复方案
问题1:Flask启动方式错误
你代码最后直接调用hello_world(),这只是执行视图函数返回字符串,并没有启动Flask的Web服务器,模板根本没被正确渲染到浏览器中。必须用app.run()来启动服务。
问题2:Jinja2模板语法错误
Jinja2的if语句结尾不需要加冒号,你模板里的{% if username == "Ana de Armas": %}多了冒号,会导致模板解析失败。
修正后的Flask代码
from flask import Flask from flask import render_template app = Flask(__name__, template_folder="template") @app.route("/") @app.route("/index") def hello_world(): name = "Ana de Armas" return render_template('index.html', title='wekcine', username=name) if __name__ == '__main__': app.run(debug=True) # 改用app.run启动服务器,debug=True方便开发调试
修正后的HTML模板代码
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>{{title}}</title> </head> <body> {% if username == "Ana de Armas" %} <h1>Hello my love</h1> {% else %} <h1>Hello {{ username }}</h1> {% endif %} </body> </html>
修改后运行代码,访问http://127.0.0.1:5000即可看到正确渲染结果。
内容的提问来源于stack exchange,提问作者Diduah
相关产品推荐
相关产品推荐

