send_from_directory,包含动态路径

时间:2017-04-07 03:24:35

标签: python flask

我尝试使用send_from_directory来返回文件。这段代码运行正常。

@app.route("/img/<filename>")
@login_required
def send_img(filename):
    path = '../py/img_detected/invador'
    return send_from_directory(path,filename)

但是,如果我将路径更改为动态路径,就像

一样
@app.route("/img/<dir><filename>")
@login_required
def send_img(dir,filename):
    path = '../py/img_detected/%s'%dir
    return send_from_directory(path,filename)

它无法正常工作。此外,我尝试将path = '../py/img_detected/invador'更改为

dir='invador'
path = '../py/img_detected/%s'%dir

它也无法工作。 谁能告诉我这个问题的原因?如果我希望这个功能更灵活,我该怎么办?

错误信息是:

127.0.0.1 - - [07/Apr/2017 04:56:41] "GET /invador_img HTTP/1.1" 200 -
127.0.0.1 - - [07/Apr/2017 04:56:41] "GET /img/invador2017-04-07-01-37.png HTTP/1.1" 404 -

1 个答案:

答案 0 :(得分:0)

对不起我的错误,我再次查看代码,发现我在/<dir><filename>中错过了'/',应该是/<dir>/<filename>。要编辑路径,代码应为os.path.join(dir, filename)