Python错误[Errno 36]:文件名太长

时间:2016-12-06 01:46:48

标签: python file flask filenames errno

我搜索了这个错误,但无法找到如何处理它。我在尝试打开文件时收到以下错误:

  

[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)

有人知道解决方案吗?非常感谢提前。

1 个答案:

答案 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")