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

时间:2013-08-12 14:00:21

标签: 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

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

1 个答案:

答案 0 :(得分:5)

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

fr = make_response(r.content)

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

r = zs.get('url_that_loads_a_png', stream=True)

但是因为你正在将整个响应读入内存无论如何,所以这里没有太多意义。