python flask - 在不同 url 上提供文件
python flask - serve file on different url
我在 flask 中为 Order
个对象构建了一个带有 CRUD 的休息服务器。
因此 POST /order
有一个端点来创建 Order
,然后用户可以在 POST /order/{order_id}/attachment
上上传附件
我也想提供附件,以便在同一个 url 上下载。
这样 GET /order/{order_id}/attachment
下载附件文件。
但是当我 return werkzeug.datastructures.FileStorage 设置了 filename
属性时,浏览器给我一个要保存的文件,名称为:attachment
有没有办法用 flask 发送文件,在不同的 url 上使用正确的文件名?
send_from_directory
方法可能会派上用场来提供文件。
示例(有点伪编码):
@app.route('/order/{order_id}/attachment')
def download_file(order_id):
order = get_order_from_db(order_id)
filename = order.attachment
return send_from_directory(app.config['UPLOAD_FOLDER'], filename)
关于 send_from_directory
的更多信息:http://flask.pocoo.org/docs/0.12/api/#flask.send_from_directory
我在 flask 中为 Order
个对象构建了一个带有 CRUD 的休息服务器。
因此 POST /order
有一个端点来创建 Order
,然后用户可以在 POST /order/{order_id}/attachment
我也想提供附件,以便在同一个 url 上下载。
这样 GET /order/{order_id}/attachment
下载附件文件。
但是当我 return werkzeug.datastructures.FileStorage 设置了 filename
属性时,浏览器给我一个要保存的文件,名称为:attachment
有没有办法用 flask 发送文件,在不同的 url 上使用正确的文件名?
send_from_directory
方法可能会派上用场来提供文件。
示例(有点伪编码):
@app.route('/order/{order_id}/attachment')
def download_file(order_id):
order = get_order_from_db(order_id)
filename = order.attachment
return send_from_directory(app.config['UPLOAD_FOLDER'], filename)
关于 send_from_directory
的更多信息:http://flask.pocoo.org/docs/0.12/api/#flask.send_from_directory