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

Flask+Jinja渲染囚犯信息表格失败:Jinja代码直接显示求助

Flask + Jinja模板未渲染,直接显示代码的排查方案

问题描述

我尝试使用Flask与Jinja渲染囚犯信息表格,已在Python文件中定义表头与数据并通过render_template传递至info.html,但页面未渲染出表格,反而直接显示Jinja模板代码。

Python代码

headings = ("First", "Last", "Court Date", "Bond Amount", "Bond Paid", "Charges")
data = (
        ("Carl", "Johnson", "12/12/2023", 1200, 900, "Murder"),
        ("Joe", "Lewis", "10/22/2023", 2000, 890, "Theft"),
        ("Jarod", "Green", "11/29/2023", 1900, 700, "Robbery") 
    )

@views.route("/info/")
def info():
    return render_template("info.html", headings=headings, data=data)

HTML代码(info.html)

<table>
 <tr>
 {%for header in headings%}
   <th>{{ header }}</th>
 {%endfor%}
 </tr>
 {%for row in data%}
 <tr>
 {%for cell in row%}
   <td>{{ cell }}</td>
 {%endfor%}
 </tr>
 {%endfor%}
</table>

错误原因排查与解决办法

  • 模板文件位置错误
    Flask默认从项目根目录下的templates文件夹加载模板,若info.html放错目录,或templates文件夹名称写错(比如写成template),Flask找不到正确模板,会直接返回原始HTML文件,导致Jinja代码不解析。
    解决:把info.html放在项目根目录的templates文件夹下,确保文件夹名称是templates(小写复数)。

  • 模板文件后缀错误
    如果HTML文件后缀不是.html(比如改成了.txt),Flask不会将其当作Jinja模板处理,直接返回原始内容。
    解决:确认文件后缀为.html,文件名无误。

  • Flask应用配置错误
    若手动修改了TEMPLATE_FOLDER配置但路径错误,也会导致模板不被解析。
    解决:检查应用配置,若有app.config['TEMPLATE_FOLDER']设置,确保路径指向正确;无特殊需求的话,用默认templates文件夹即可,不用手动配置。

  • render_template使用错误
    要确认是否从flask正确导入了render_template,有没有用错函数,或者传入的模板文件名大小写/拼写错误(Linux系统下文件名区分大小写)。
    解决:确保导入语句是from flask import render_template,且render_template("info.html")中的文件名和实际文件名完全一致。

  • 浏览器缓存问题
    浏览器缓存旧的静态文件,可能导致新模板内容没加载。
    解决:按Ctrl+Shift+R强制刷新页面,或清除浏览器缓存后重试。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.22 04:22:27