pythonflask - 在不同的url上提供文件

标签 python http flask werkzeug

我在 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/

相关文章:

python - csv 格式的 Django fixture

javascript - 访问 Node.js 中函数范围之外的 http 请求对象

amazon-web-services - Docker 的 EXPOSE 不会破坏所谓的沙箱吗?

python - 使用 Flask 从 API 调用端点的正确方法

python - 直方图未显示在 f 分布图中

python - 二次复杂度的 4SUM 变化(Python 3.5)

java - Netty Http Client : how to separate client-start,发送请求,和client-shutdown分为不同的方法

python - 如何在 Flask 上使用 python 的二维码提供生成的二维码图像

javascript - Google Maps API v3,删除标记图标或更改为 "null"?

python - 按表示相同值的多个键对字典进行排序