Flask渲染模板报错Jinja2.exceptions.TemplateNotFound: home.html求助
解决Jinja2.exceptions.TemplateNotFound: home.html问题
以下是针对该错误的排查和修复步骤:
1. 确认templates文件夹的位置与命名
- 文件夹必须和Flask应用实例的入口文件(比如
main.py)处于同一层级目录,不能嵌套在子文件夹中(除非你在初始化Flask时手动指定了template_folder参数) - 严格检查文件夹名拼写:必须是全小写的
templates,Linux/macOS系统区分大小写,Windows系统虽不敏感,但统一命名可避免跨环境问题
2. 检查Flask应用的初始化代码
- 若使用默认初始化方式,确保代码为:
该代码会自动识别同级目录下的app = Flask(__name__)templates文件夹;若自定义模板路径,需确认相对/绝对路径正确,例如:# 若templates在上级目录 app = Flask(__name__, template_folder='../templates') - 若使用工厂模式(含
__init__.py),确保create_app函数中的初始化逻辑无路径错误
3. 验证视图函数的render_template调用
- 确保调用时仅传入文件名,不要带
templates/前缀,正确写法:
错误写法(会导致Jinja在return render_template('home.html')templates/templates/下查找文件):return render_template('templates/home.html') - 检查文件名拼写与大小写,确保是
home.html,而非Home.html或home.HTML
4. 确认VS Code工作区路径
- 打开VS Code时,需选择项目根目录作为工作区,而非仅打开单个文件或子文件夹。例如项目结构为:
需将my_flask_project/ ├── main.py ├── templates/ │ ├── home.html │ └── about.html ├── __init__.py └── views.pymy_flask_project设为工作区,避免Python路径识别异常
5. 清除缓存并重启服务器
- 停止当前Flask服务器,删除项目根目录下的
__pycache__文件夹 - 重新执行
flask run启动服务器,避免缓存导致的路径识别问题
针对蓝图(Blueprint)的额外检查
若使用蓝图(如views.py中的蓝图),确保蓝图定义与注册逻辑正确:
views.py中的蓝图定义:from flask import Blueprint, render_template views = Blueprint('views', __name__) @views.route('/') def home(): return render_template('home.html')__init__.py中的注册逻辑:from flask import Flask from .views import views def create_app(): app = Flask(__name__) app.register_blueprint(views, url_prefix='/') return app
内容的提问来源于stack exchange,提问作者rupertpurple
相关产品推荐
相关产品推荐

