如何使用不同目录中的 flask render_template

How do I use flask render_template from a different directory

我需要一些帮助。让我解释一下我的情况。我们假设主要的 flask 项目在 ~/project 中作为示例。现在目录结构看起来像

模板内部有 index.html。这是一个标准项目。 现在,如果我在 ~ 里面并且我 运行 命令

python project/main.py

然后我遇到一个问题,说 Flask 找不到 index.html 作为模板。我假设解决方案涉及使用 OS 模块。不过我不确定。

我的 main.py 代码如下所示

from flask import Flask,render_template
app = Flask('app')

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

app.run(host='0.0.0.0', port=8080)

如果我在项目目录中,这很好用。但如果我不在其中就不会

有人可以帮忙吗?

更新:使用 python3 而不是 python 是行不通的。

您尝试过 FLASK_APP=project/main flask run 主目录吗?

我找到了答案。分享给大家。

template_dir = os.path.abspath('~/project/templates')
app = Flask('app',template_folder=template_dir)

这是模板文件夹的存储位置。这个位置是静态的。无论您来自哪里运行。