美文网首页
Flask 返回图片及其图片的附加信息

Flask 返回图片及其图片的附加信息

作者: 猕猴桃syh | 来源:发表于2020-04-18 16:25 被阅读0次

关于响应(Response)

视图函数的返回值会被自动转换为一个响应对象,Flask的转换逻辑如下:

1、如果返回的是一个合法的响应对象,则直接返回。

2、如果返回的是一个字符串,那么Flask会重新创建一个werkzeug.wrappers.Response对象,Response将该字符串作为主体,状态码为200,MIME类型为text/html,然后返回该Response对象。

3、如果返回的是一个元组,元祖中的数据类型是(response,status,headers)。status值会覆盖默认的200状态码,headers可以是一个列表或者字典,作为额外的消息头。

4、如果以上条件都不满足,Flask会假设返回值是一个合法的WSGIt应用程序,并通过Response.force_type(rv,request.environ)转换为一个请求对象

我们可以通过Response和make_response函数来创建响应对象,另外我们也可以通过返回元组和自定义响应来进行返回,具体内容可以参考一下文章(以上内容参考自以下文章,如有侵权,请联系作者进行删除)

Flask | Flask基础 - 关于响应Response的浅析

当服务端需要返回图片时,就需要使用Response或者make_进行自定义返回.make_response方法要优于Response方法,这是因为该方法可以设置额外的数据,比如设置cookie,header信息等。

例如当用户请求服务器,要求返回一张图片并同时把该图片的清晰度返回时,就需要使用make_response返回数据,在主体中返回图片,在response的headers中返回清晰度信息,示例如下:

import cv2
from flask import Flask, make_response
import os

from turbojpeg import TurboJPEG

app = Flask(__name__)
image_focus = 14521.6


def load_turbojpeg():
    basePath = os.path.split(os.path.realpath(__file__))[0]
    TurboJPEGPath = basePath + '\\turbojpeg.dll'
    turbojpeg = TurboJPEG(TurboJPEGPath)
    return turbojpeg

turbojpeg = load_turbojpeg()


@app.route("/image")
def index():
    image = cv2.imread('./image/0010.jpg')
    #转换为JPEG格式
    jpeg = turbojpeg.encode(image)
    #创建response对象
    resp = make_response(jpeg)
    #设置response的headers对象
    resp.headers['Content-Type'] = 'image/jpeg'
    resp.headers['image-focus'] = image_focus
    return resp


if __name__ == '__main__':
    app.run(debug=True, host="0.0.0.0", port=8000)

启动服务,当用户访问[http://127.0.0.1:8000/image]时,会返回服务器根目录中/image/0010.jpg这张图片.

HTTP响应报文

Content-Length:1238664
Content-Type:image/jpeg
Date:Sat, 18 Apr 2020 08:23:39 GMT
image-focus:14521.6
Server:Werkzeug/0.16.0 Python/3.6.9

返回的类型为image/jpeg

以下为测试结果图:


image.png

相关文章

  • Flask 返回图片及其图片的附加信息

    关于响应(Response) 视图函数的返回值会被自动转换为一个响应对象,Flask的转换逻辑如下: 1、如果返回...

  • Flask返回图片

    Flask响应请求有以下几种方法: render_template 返回模板文件 jsonify 返回json格式...

  • 泛型的问题

    运行结果:图片.png 分析:msg是成功或者失败返回时的附加信息。data是成功返回时的泛型数据。构造函数第二个...

  • Flask接收和返回图片

    上一篇文章介绍一下基本的flask文件结构,这篇讲一下如何用flask接收和返回图片。包括在接收之后如何用Imag...

  • 图片添加附加信息

    对于拍摄的图片,我们可以获取到图片的一些信息,比如下面方法可以获取: 我们可以对图片的附加信息进行修改以使得上传的...

  • canvas 裁剪图片并发送

    工作中遇到这样一个需求: 浏览器上传一张图片 服务器返回一张处理过的图片(url)和附加坐标信息 用户点击,浏览器...

  • python Flask中返回图片流给前端展示

    python Flask中返回图片流给前端展示 DHogan 2017-05-16 14:50:48 20440 ...

  • iOS编程中滑动截图

    截取view,返回图片 截取ScrollView,返回图片

  • flask实现随机返回图片url的接口

    flask是python的微型web框架,用来实现一些小型功能只需要少许配置和代码,以下是实现随机返回某个目录下某...

  • 【简书】APP真的好用

    以前发朋友圈时,要么发文字不能加发图片,要么发图片只能附加说明。偶然间发现朋友圈中有人用简书发“文字+图片”的信息...

网友评论

      本文标题:Flask 返回图片及其图片的附加信息

      本文链接:https://www.haomeiwen.com/subject/pknbvhtx.html