我在 Flask 中为 Order
对象构建了一个带有 CRUD 的休息服务器。
因此,有一个用于 POST/order
的端点来创建 Order
,然后用户可以在 POST/order/{order_id}/attachment 上上传附件
我还想提供附件,以便可以在同一网址上下载。
这样GET/order/{order_id}/attachment
就会下载附件文件。
但是当我返回 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
关于pythonflask - 在不同的url上提供文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44843197/