Flask 返回图片 response

Flask 返回图片 response

Flask 返回图片 response

在Web开发中,有时候我们需要在网页上展示图片。而Flask作为一个流行的Python web框架,也可以很方便地返回图片的响应。

准备图片文件

首先,我们需要准备一张图片文件,比如一张名为example.jpg的图片。

创建Flask应用

接下来,我们创建一个Flask应用并编写一个路由,用于返回图片的响应。

from flask import Flask, send_file

app = Flask(__name__)

@app.route('/image')
def get_image():
    path_to_image = 'example.jpg'
    return send_file(path_to_image, mimetype='image/jpg')

在上面的代码中,我们创建了一个名为get_image的路由,它会返回example.jpg这张图片。我们使用send_file函数来发送文件,并设置mimetype参数为image/jpg来指定响应的内容类型为图片。

运行Flask应用

接下来,我们运行我们的Flask应用,并访问之前定义的路由/image

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

在浏览器中访问http://localhost:5000/image,你会看到浏览器会展示出example.jpg这张图片。

扩展

除了返回本地的图片文件外,我们还可以在Flask中返回动态生成的图片。比如,我们可以使用Pillow库来生成一张带有文字的图片,并在Flask中返回这张图片。

from flask import Flask, send_file
from PIL import Image, ImageDraw, ImageFont

app = Flask(__name__)

@app.route('/dynamic_image')
def get_dynamic_image():
    image = Image.new('RGB', (200, 50), color = (73, 109, 137))

    d = ImageDraw.Draw(image)
    font = ImageFont.truetype('arial.ttf', 30)

    d.text((10,10), "Hello, Flask!", fill=(255,255,0), font=font)

    image.save('dynamic_image.jpg')

    return send_file('dynamic_image.jpg', mimetype='image/jpg')

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

在上面的代码中,我们创建了一个名为get_dynamic_image的路由,它会生成一张带有文字”Hello, Flask!”的图片,并返回这张图片。我们先创建一张背景色为(73, 109, 137)的图片,然后在图片上绘制文字”Hello, Flask!”,最后返回这张动态生成的图片。

在浏览器中访问http://localhost:5000/dynamic_image,你会看到浏览器会展示出带有文字的图片。

结论

Flask提供了很方便的方法来返回图片响应,无论是静态图片文件还是动态生成的图片。通过以上的示例,你可以在Flask中轻松地展示图片内容。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程