我搜索了这个错误,但无法找到如何处理它。我在尝试打开文件时收到以下错误:
[Errno 36]文件名太长:' / var / www / FlaskApp / FlaskApp / templates /
这是我的简单代码。我正在尝试打开一个json文件并将其与Flask一起呈现到一个网站中:
@app.route("/showjson/")
def showjson():
SITE_ROOT = os.path.realpath(os.path.dirname(__file__))
data_in = open(os.path.join(SITE_ROOT, "static/data", "btc.json"), "r")
data_out = ""
for line in data_in:
data_out += line.rstrip()
data_in.close()
return render_template(data_out)
有人知道解决方案吗?非常感谢提前。
答案 0 :(得分:1)
当您正在查找模板文件的文件名时,您正在传递整个JSON文件的render_template函数。这就是为什么你得到一个文件名太长的错误。
您可以使用send_from_directory函数发送JSON文件。首先导入函数:
from flask import send_from_directory
然后像这样使用它:
@app.route("/showjson/")
def showjson(path):
SITE_ROOT = os.path.realpath(os.path.dirname(__file__))
return send_from_directory(os.path.join(SITE_ROOT, "static/data"), "btc.json")