我正在尝试更改Flask Templates文件夹的目录。我试过这个:
template_dir = os.path.abspath('../website/endpoint')
app = Flask(__name__, template_folder=template_dir)
@app.route("/api/t-tycoon/sotd")
def tt_sotd():
return render_template("sotd.html")
但是,此代码会产生以下错误:
return render_template("sotd.html")
另一个方便的东西是目录,所以在这里你有它
main.py
website
endpoint
sotd.html
jsons
我不知道哪里出了问题,也不知道这是怎么回事。我在网上读到一些关于更改Flask目录的内容,但它不起作用
如果需要更多信息,请告诉我。我希望有人能帮我解决这个问题,因为我自己也不知道
错误:jinja2.exceptions.TemplateNotFound:sotd.html
您使用的路径是错误的。正如@NavaneethaKrishnan所说的,它应该是
os.path.abspath('website/endpoint')
然而,这个解决方案也不是完美的
website/endpoint
仍然是一个相对路径,它与当前工作目录相对。因此,只有当当前工作目录是main.py
所在的目录时,它才会工作更好的解决方案是:
这里
dir_path
是main.py
所在目录的绝对路径。通过连接dir_path
和website/endpoint
,可以保证模板目录是您创建的目录,并且它与当前工作目录无关您需要在python模块(示例中创建Flask app-main.py的模块)旁边创建模板子目录:
将模板(sotd.html)移动到“网站”目录,并将其配置为模板子目录,这将解决您的问题
相关问题 更多 >
编程相关推荐