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

Flask应用出现jinja2.exceptions.TemplateNotFound错误:index.html未找到

Flask模板找不到错误排查方案

问题描述

运行Flask应用时触发以下错误:

jinja2.exceptions.TemplateNotFound: index.html

已确认项目目录结构符合规范:

├── app.py
├── templates
│   └── index.html
└── ...

app.py核心代码:

from flask import Flask, render_template

app = Flask(__name__)

@app.route('/')
def index():
    return render_template('index.html')

if __name__ == '__main__':
    app.run()

index.html文件存在且文件名拼写正确,使用Flask版本为2.3.2,反复检查目录结构后问题仍未解决。


排查与解决步骤

1. 确保在正确路径启动应用

Flask默认从启动脚本所在目录加载templates文件夹。如果从上级目录或其他路径启动应用,会导致模板路径识别错误:

  • 错误示例:在项目父目录执行 python my_project/app.py
  • 正确操作:先进入app.py所在目录,再执行 python app.py

2. 显式指定模板文件夹路径

如果无法固定启动路径,可在初始化Flask应用时手动指定模板文件夹的绝对路径,避免路径识别偏差:

import os
from flask import Flask, render_template

# 获取当前脚本所在目录的绝对路径
base_dir = os.path.abspath(os.path.dirname(__file__))
# 显式绑定模板文件夹位置
app = Flask(__name__, template_folder=os.path.join(base_dir, 'templates'))

@app.route('/')
def index():
    return render_template('index.html')

if __name__ == '__main__':
    app.run()

3. 检查文件权限(Linux/macOS)

类Unix系统下,需确保templates文件夹和index.html文件具备可读权限:

chmod -R 644 templates/

4. 核对IDE运行配置

使用PyCharm、VS Code等IDE时,检查运行配置的工作目录是否设置为app.py所在的目录,避免IDE默认以项目根目录作为启动路径。

5. 清除缓存并重启应用

Flask可能缓存旧的路径配置,可尝试:

  • 完全关闭应用进程后重新启动
  • 浏览器强制刷新页面(Ctrl+F5)清除前端缓存

内容的提问来源于stack exchange,提问作者Nguyen Ngoc Tung Lam

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.21 17:30:19