将图像数据传递给 Flask 服务器

AKS*_*HAN 4 curl image flask

我想通过 curl 将图像发送到烧瓶服务器,我正在尝试这个 curl 命令

curl -F "file=@image.jpg" http://localhost:8000
Run Code Online (Sandbox Code Playgroud)

但它没有用

在服务器端,我通过此代码处理图像

@app.route('/home', methods=['POST'])
def home():
    data =request.files['file']
    img = cv2.imread(data)
    fact_resp= model.predict(img)
    return jsonify(fact_resp)
Run Code Online (Sandbox Code Playgroud)

fact_resp 是一个整数,我正在尝试使用 cv2 读取图像

有没有办法做到这一点?

Pax*_*cum 5

您应该为 curl 命令使用正确的 url,即http://localhost:8000/home,如果您的应用程序实际上在 localhost 上运行,则端口为 8000。

当涉及到你的 cv2 代码时,如果你有问题,请用不同的标签打开一个单独的问题以获得适当的帮助!

编辑:

测试过的最小示例 curling.py

from flask import Flask, jsonify, request

app = Flask(__name__)

@app.route('/home', methods=['POST'])
def home():
    data = request.files['file']
    return jsonify({"status":"ok"})

app.run(port=8000)
Run Code Online (Sandbox Code Playgroud)

从...开始 python curling.py

在单独的终端窗口中:

curl -F "file=@image.jpg" http://localhost:8000/home
Run Code Online (Sandbox Code Playgroud)

输出:

{
  "status": "ok"
}
Run Code Online (Sandbox Code Playgroud)