python - 如何在 Flask 中通过 POST 请求发送图像

标签 python numpy flask python-requests

我正在尝试从 1 Flask 发送图像应用程序到另一个端点,即从一个端点到另一个端点,但我不知道需要进行什么转换才能正确发送和接收。我正在使用下面的代码,但我得到 NoneType接收方对象

发送者 Flask 应用代码

import requests

data = {}
data['image'] = # <image> 
res = requests.post('http://<IP>:<PORT>/', data = data)

接收器 flask 应用程序代码

from flask import request
import numpy as np
import cv2 as cv

f1 = request.form.get('image')
print(type(f1))

f2 = np.fromstring(f1, np.uint8)
print(type(f2), f2.shape)

f3 = cv.imdecode(f2, cv.IMREAD_COLOR)
print(type(f3))

我尝试过发送两种类型的图像。发送类型为 <class 'PIL.Image.Image'> 的图像在接收端产生以下输出

<class 'str'>
<class 'numpy.ndarray'> (62,)
<class 'NoneType'>

正在发送 <class 'numpy.ndarray'> 类型的图像在接收端产生以下输出

<class 'str'>
<class 'numpy.ndarray'> (3,)
<class 'NoneType'>

最佳答案

使用 requests.post(url, files={'image': open('image.jpg', 'rb')}) 发送图像,参见 https://requests.readthedocs.io/en/master/user/quickstart/#post-a-multipart-encoded-file .

使用 file = request.files['image'] 接收图像,例如使用 file.save('image.jpg') 存储它。

关于python - 如何在 Flask 中通过 POST 请求发送图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64649598/

相关文章:

python - Flask URL 路由

python - 为什么在有 flask 的情况下使用 werkzeug

python - 简单的暴力破解不工作

python - Docker容器网络偶尔失败

python - 尝试使用设置样式线时出现 GNUplot 4.2 语法错误

Python 天气 API 问题

python - Numpy:创建 Python 对象的浅拷贝数组

Python:从多个文件读取数据到二维numpy数组或列表的方法

python - 覆盖 Flask-Security 的/登录端点

python - 截图中没有交互元素