Postman,Python 并将图像和元数据传递到 Web 服务

Postman, Python and passing images and metadata to a web service

这是一个由两部分组成的问题:我已经看到讨论的各个部分,但似乎无法获得共同工作的推荐建议。我想创建一个 Web 服务来存储从调用者传递的图像及其元数据,以及 运行 来自 Postman 的测试调用以确保它正常工作。因此,要通过 Postman 将图像 (Drew16.jpg) 传递到 Web 服务,看来我需要这样的东西:

对于 Web 服务,我有一些 python/flask 代码来读取请求(我尝试过的许多变体之一):

from flask import Flask, jsonify, request, render_template
from flask_restful import Resource, Api, reqparse

...

def post(self, name):
    request_data = request.get_json()
    userId = request_data['UserId']
    type = request_data['ImageType']
    image = request.files['Image']

数据部分没有问题,直接 JSON 但添加图像时遇到了问题。我的 Postman 配置哪里出错了?用于从 post 读取元数据和文件的实际 Python 命令集是什么? TIA

确保 `request.files['Image'] 包含您要发送的图像,然后按照 http://flask.pocoo.org/docs/1.0/patterns/fileuploads/ 将文件保存到您的文件系统。像

file = request.files['Image']
file.save('./test_image.jpg')

可能会做你想做的事,但你必须弄清楚文件的命名方式和放置位置的细节。

原谅差点博客post。我 post 这样做是因为虽然您可以在不同的地方找到部分答案,但我还没有 运行 在任何地方找到完整的 post,这会节省我很多时间。问题是你需要故事的双方来验证任何一方。

所以我想使用 Postman 向 Python/Flask 网络服务发送请求。它必须有一个图像以及一些元数据。

以下是 Postman 的设置(URL、Headers):

和Body:

现在开始网络服务。这是一个简单的服务,它将接受请求、打印元数据并保存文件:

from flask import Flask, request

app = Flask(__name__)        

# POST - just get the image and metadata
@app.route('/RequestImageWithMetadata', methods=['POST'])
def post():
    request_data = request.form['some_text']
    print(request_data)
    imagefile = request.files.get('imagefile', '')
    imagefile.save('D:/temp/test_image.jpg')
    return "OK", 200

app.run(port=5000)

尽情享受吧!