Flask 从烧瓶中提供动态图像

Flask 从烧瓶中提供动态图像,flask,Flask,我正在尝试提供一个从烧瓶端点在PIL中动态生成的图像 img_io = BytesIO() image.save(img_io, 'JPEG', quality=70) img_io.seek(0) response = make_response(img_io) response.headers.set('Content-Type', 'image/jpeg') return response # return send_file(img_io, mimetype='image/jpeg')

我正在尝试提供一个从烧瓶端点在PIL中动态生成的图像

img_io = BytesIO()
image.save(img_io, 'JPEG', quality=70)
img_io.seek(0)

response = make_response(img_io)
response.headers.set('Content-Type', 'image/jpeg')
return response
# return send_file(img_io, mimetype='image/jpeg')
我已经尝试了发送文件路径和生成响应路径。回答说:

The view function did not return a valid response. The return type must be a string, dict, tuple, Response instance, or WSGI callable, but it was a BytesIO.
发送的文件上写着:

    return send_file(FileWrapper(img_io), mimetype='image/jpeg')
File "/usr/local/lib/python3.6/site-packages/flask/helpers.py", line 640, in send_file
data = wrap_file(request.environ, file)
File "/usr/local/lib/python3.6/site-packages/werkzeug/wsgi.py", line 529, in wrap_file
return environ.get("wsgi.file_wrapper", FileWrapper)(file, buffer_size)
SystemError: <built-in function uwsgi_sendfile> returned a result with an error set
return send_文件(FileWrapper(img_io),mimetype='image/jpeg')
文件“/usr/local/lib/python3.6/site packages/flask/helpers.py”,第640行,在send_文件中
数据=包装文件(request.environ,文件)
文件“/usr/local/lib/python3.6/site packages/werkzeug/wsgi.py”,第529行,在wrap_文件中
返回environ.get(“wsgi.file\u wrapper”,FileWrapper)(文件,缓冲区大小)
SystemError:返回了一个带有错误集的结果

有文档记录的make_响应函数不采用BytesIO参数

但是,它确实需要一个
bytes
参数,您可以使用
getvalue()
请求
BytesIO
对象中的字节

response = make_response(img_io.getvalue())