为什么在带表单的python中发送图像不起作用

时间:2019-07-12 09:23:50

标签: python forms post flask python-requests

尝试使用带有formspost Requests 包将图像发送到 Flask 服务器。但是烧瓶服务器无法解析密钥image。如何使用表格通过请求发送正确格式的图像。

烧瓶server.py

@app.route('/api/<model_name>/predict/', methods=['POST'])
def predict(model_name):

    if "image" in request.files.keys():
        return jsonify({"msg": "key found"})

    print("image", request.files)
    return str(), 200

请求client.py

def get_predictions(path):

   url = "http://localhost:9020/api/fasterrcnn/predict/"

   payload = {"image": (path.name, open(path, "rb"), "image/jpeg")}
   headers = {'content-type': "multipart/form-data"}
   response = requests.post(
       url, data=payload, headers=headers, stream=True)

   pprint(response.text)

有人可以告诉我可能的原因和解决方案吗?如果我错过了任何内容,或者过分强调或强调了一点,请在评论中告诉我。

1 个答案:

答案 0 :(得分:1)

requests documentation page指出,应使用files=参数发布多部分文件。

示例:

import requests

def get_predictions(path):
   url = "http://localhost:9020/api/fasterrcnn/predict/"

   files = {"image": (path.name, open(path, "rb"), "image/jpeg")}
   response = requests.post(url, files=files)

   pprint(response.text)