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
相关产品推荐
相关产品推荐

