我可以在 Flask 中提供多部分 http 响应吗?

Nic*_*ack 3 python curl multipart flask

我想做一个类似于表单可以为文件上传生成的多部分 http 请求的多部分 http 响应。它将包含多个数据段,每个数据段都有自己的内容类型。当我谷歌这个时,我找到的只是关于流的信息

我不在乎浏览器是否支持这一点,因为它适用于使用 libcurl 的客户端。但是,我不确定 libcurl 是否也支持多部分响应。可以?您可以做多部分响应吗?

Vic*_*rat 6

以其他答案为基础,并使用requests 工具带库,代码如下所示:

from flask import Flask, Response
from requests_toolbelt import MultipartEncoder

app = Flask(__name__)

@app.route('/downloads')
def downloads():
    m = MultipartEncoder(
           fields={'field0': 'value', 'field1': 'value',
                   'field2': ('filename', open('file.py', 'rb'), 'text/plain')}
        )
    return Response(m.to_string(), mimetype=m.content_type)
Run Code Online (Sandbox Code Playgroud)