请求获取图像,通过烧瓶返回

edA*_*a-y 3 python flask python-requests

我试图通过请求获取图像并从烧瓶应用程序返回该图像.我没有运气从请求中读取二进制数据,我得到的响应总是0字节.

@app.route('/image')
def get_image:
    zs = requests.Session()
    r = zs.get( 'url_that_loads_a_png' )
    fr = make_response( r.raw.read() )
    fr.headers['Content-Type'] = r.headers['Content-Type']
    return fr
Run Code Online (Sandbox Code Playgroud)

我认为我make_response( r.raw.read() )的某种方式不正确,但我不确定它应该是什么.我已经搜索了其他答案并基于它们,但它们总是略有不同(通常涉及文件).

Mar*_*ers 5

您没有发送流请求,因此已经读取了原始套接字.只需使用r.content:

fr = make_response(r.content)
Run Code Online (Sandbox Code Playgroud)

如果您stream=True在创建请求时使用原始套接字,则只能从静止读取:

r = zs.get('url_that_loads_a_png', stream=True)
Run Code Online (Sandbox Code Playgroud)

但因为你正在阅读的整个反应到内存反正没有这样做这里远点.