使用urllib2

时间:2015-05-28 17:50:11

标签: python flask urllib2

我是Flask的新用户,我想将图像发送到之前通过urllib2从外部服务器接收的客户端。以下是我将Google徽标发送给客户的示例代码:

import urllib2
from flask import Flask, send_file

app = Flask(__name__)

@app.route('/getTestImage')
def getTestImage():

    url = "https://www.google.de/images/srpr/logo11w.png"

    response = urllib2.urlopen(url)
    img = response.read()
    response.close()

    return img

if __name__ == '__main__':
    app.run()

当我用浏览器(例如Firefox)打开127.0.0.1:5000/getTestImage时,我只得到二进制代码。如何发送png文件以便浏览器显示图像?我从send_file找到Flask,但我不知道如何使用来自urllib2的图片数据来使用该功能。

编辑:我想通了。只需return Response(img, mimetype="image/png")

1 个答案:

答案 0 :(得分:1)

您会看到二进制数据,因为您直接返回图像数据。 Flask包装从default Response object, which sets the mimetype to text/plain中的视图返回的文本。由于您没有返回纯文本数据,因此您需要创建一个描述正确mimetype的响应。

return app.response_class(img, mimetype='image/png')