You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

Flask无法检索模板求助:jinja2.exceptions.TemplateNotFound报错

解决Jinja2找不到home.html模板的问题

我之前也踩过这个模板找不到的坑,给你几个针对性的排查和解决方法:

  • 显式指定模板文件夹路径
    有时候Flask会因为当前运行环境的问题,自动识别模板目录失败。你可以在初始化Flask应用时手动指定模板文件夹的绝对路径,确保它能准确定位到Templates文件夹。修改你的App.py代码:

    from flask import Flask
    import os
    
    # 获取当前脚本所在目录的绝对路径
    base_dir = os.path.dirname(os.path.abspath(__file__))
    # 拼接得到Templates文件夹的绝对路径
    template_dir = os.path.join(base_dir, 'Templates')
    app = Flask(__name__, template_folder=template_dir)
    
  • 检查运行App.py的工作目录
    很多时候问题出在你运行App.py时的当前工作目录不对。比如你如果是从上级目录或者子文件夹执行python App.py,Flask会以当前执行命令的目录为基准找Templates,自然找不到。
    你可以在App.py里加一行代码打印当前工作目录:

    import os
    print("当前工作目录:", os.getcwd())
    

    运行后看输出的路径是不是和你的App.py、Templates文件夹所在的目录一致。如果不一致,切换到正确的目录再运行App.py即可。

  • 确认文件没有隐藏后缀
    尤其是在Windows系统中,默认会隐藏已知文件的扩展名,可能你以为创建的是home.html,实际却是home.html.txt。可以打开文件夹选项,勾选「显示文件扩展名」,然后确认Templates里的文件确实是home.html

  • 再次核对大小写(针对Linux/macOS)
    虽然你说已经试过修改大小写,但再确认一下:在类Unix系统中路径是区分大小写的,比如templatesTemplates是两个完全不同的文件夹,确保你的代码里引用的文件夹名和实际的完全一致。

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

火山引擎 最新活动