使用urllib2通过flask发送图像

2024-06-17 01:07:57 发布

您现在位置:Python中文网/ 问答频道 /正文

我对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文件以便浏览器显示图像?我从Flask中找到了send_file,但我不知道如何将该函数用于从urllib2接收的图像数据。在

编辑:我想出来了。简单地return Response(img, mimetype="image/png")。在


Tags: 代码name图像importsendappflaskimg
1条回答
网友
1楼 · 发布于 2024-06-17 01:07:57

看到二进制数据是因为直接返回图像数据。Flask在其default ^{} object, which sets the mimetype to ^{}中包装从视图返回的文本。由于不返回纯文本数据,因此需要创建一个描述正确mimetype的响应。在

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

相关问题 更多 >