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

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/前缀,正确写法:
    return render_template('home.html')
    
    错误写法(会导致Jinja在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.py
    
    需将my_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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 18:22:45