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

Flask应用无法找到相邻文件夹中的模板问题求助

Flask模板找不到问题解决

问题重现

开发Flask应用时,同级templates文件夹中的dashboard.html无法被找到,路由及相关代码如下:

app = Flask(__name__, template_folder='app/templates', static_folder='static')
CORS(app, resources={r"/*": {"origins": "*"}})

@app.route('/dashboard')
@cross_origin()
def dashboard():
    print('dashbaording')
    if request.method == 'OPTIONS':
        # Handle preflight requests (CORS)
        response = make_response()
        response.headers.add("Access-Control-Allow-Methods", "GET")
        return response
    app_root = os.path.dirname(os.path.abspath(__file__))
    template_path = os.path.join(app_root, 'templates')
    print("Template folder path:", template_path)
    return render_template('dashboard.html')

错误信息:

raise TemplateNotFound(template)

jinja2.exceptions.TemplateNotFound: dashboard.html

IDE文件结构:
IDE文件结构视图

问题原因

Flask初始化时指定的template_folder='app/templates'路径错误——从文件结构可见,templates文件夹与app文件夹是同级关系,并非app的子文件夹,导致Flask去错误的目录查找模板。

解决方案

  1. 修正模板文件夹路径
    将Flask初始化代码中的template_folder参数改为正确路径,若启动脚本位于项目根目录,直接指定根目录下的templates即可,甚至可以省略该参数(Flask默认会查找根目录下的templates文件夹):

    # 方式一:省略template_folder,使用默认值
    app = Flask(__name__, static_folder='static')
    
    # 方式二:明确指定正确路径
    app = Flask(__name__, template_folder='templates', static_folder='static')
    
  2. 验证实际模板路径
    可以打印Flask实际使用的模板文件夹路径,确认设置生效:

    print("Flask实际使用的模板路径:", app.template_folder)
    
  3. 简化CORS处理
    路由中手动处理OPTIONS请求的代码可以删除,因为CORS(app, resources={r"/*": {"origins": "*"}})已经自动处理了preflight请求,简化后的路由代码:

    @app.route('/dashboard')
    @cross_origin()
    def dashboard():
        print('dashbaording')
        return render_template('dashboard.html')
    

内容的提问来源于stack exchange,提问作者Benjamin Marquardt

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.10 05:37:04