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

Python Flask跨目录问题:无法从app.py访问front下的index.html

Flask 指定自定义模板目录解决方案

要让位于back/app.py的Flask应用渲染front/templates/index.html,只需在初始化Flask实例时手动指定模板目录路径即可,以下是两种可靠实现方式:

方式1:使用绝对路径(推荐,避免环境路径问题)

通过os模块构建模板目录的绝对路径,确保在任何运行环境下都能正确定位模板文件:

from flask import Flask, render_template
import os

# 获取当前app.py文件所在的绝对目录
current_app_dir = os.path.dirname(os.path.abspath(__file__))
# 拼接得到front/templates的绝对路径
template_directory = os.path.join(current_app_dir, '../front/templates')

# 初始化Flask应用时指定自定义模板目录
app = Flask(__name__, template_folder=template_directory)

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

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

方式2:使用相对路径(适合本地开发快速测试)

直接以app.py所在的back目录为基准,使用相对路径指向front/templates:

from flask import Flask, render_template

# 直接指定相对路径的模板目录
app = Flask(__name__, template_folder='../front/templates')

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

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

核心说明

Flask默认会在与应用实例文件(app.py)同目录的templates文件夹中查找模板文件,通过template_folder参数可以覆盖这一默认行为,指定任意合法路径的模板目录。

内容的提问来源于stack exchange,提问作者Mohamma Satel

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.11 01:30:58