You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Flask中Jinja2无法识别HTML占位符的问题解决

解决Jinja2占位符未替换的问题

核心排查点及解决步骤

  • 确保使用正确的渲染方法:后端必须调用Flask的render_template()函数返回模板,不能直接读取HTML文件内容返回,也不能用send_file()。示例正确代码:
    from flask import Flask, render_template
    
    app = Flask(__name__)
    
    @app.route('/boarding-pass')
    def boarding_pass():
        flight_data = {
            'departure': 'Beijing',
            'destination': 'Shanghai'
            # 其他字段
        }
        return render_template('boarding_pass.html', **flight_data)
    
  • 验证模板路径与命名:
    • 默认情况下,Flask会在项目根目录下的templates文件夹查找模板,确保你的HTML文件放在这个文件夹里,比如/templates/boarding_pass.html
    • 如果自定义了模板路径,要在初始化Flask时明确指定:
      app = Flask(__name__, template_folder='自定义模板路径')
      
  • 检查变量名与语法一致性:
    • 后端传递的字典键名必须和模板中的{{ departure }}完全一致(Jinja2对大小写敏感)
    • 确保占位符没有语法错误,不要多写或少写大括号,不要使用中文括号
  • 关闭模板缓存(调试场景):
    • 开启调试模式会自动禁用模板缓存,避免旧模板内容被缓存导致不更新。启动时设置:
      if __name__ == '__main__':
          app.run(debug=True)
      
    • 若无法开启调试模式,可手动禁用缓存:
      app.config['TEMPLATES_AUTO_RELOAD'] = True
      
  • 确认模板文件类型:确保HTML文件的扩展名是.html,不要用.txt或其他格式,否则Flask不会将其识别为Jinja2模板进行渲染

内容的提问来源于stack exchange,提问作者Tej5336

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.18 23:21:00