python - 将图像从 python 客户端上传到 flask 服务器

标签 python image http flask python-requests

我正在使用 requestsrequests_toolbelt 将图像发送到云端,到目前为止我有类似的东西

import requests
import json
from requests_toolbelt import MultipartEncoder

m = MultipartEncoder(
    fields={"user_name":"tom", "password":"tom", "method":"login",
            "location":"landing", "cam_id":"c00001", "datetime":"hammaTime!"
            ,'image': ('filename', open('image.jpg', 'rb'))}
    )
r = requests.post(url, data=m)
print r.text

到达服务器后,我如何取回可用的字典? toolbelt docs只显示如何发布,而不是如何在另一端处理它。有什么建议吗?

最佳答案

您可以在 HTTPbin 上看到一个 Flask 服务器的工作示例,它接受您尝试发布的 POST。 .如果您执行以下操作:

m = MultipartEncoder(fields=your_fields)
r = requests.post('https://httpbin.org/post', data=m, headers={'Content-Type': m.content_type})
print(r.json()['form'])

您会看到您帖子中的所有内容都应该在该词典中。

使用 HTTPBin 的源代码,您可以看到 form 部分是从 request.form 生成的。您可以使用它来检索其余数据。然后您可以使用 request.files 访问您要上传的图片。

示例 Flask 路由处理程序如下所示:

@app.route('/upload', methods=['POST'])
def upload_files():
    resp = flask.make_response()
    if authenticate_user(request.form):
        request.files['image'].save('path/to/file.jpg')
        resp.status_code = 204
    else:
        resp.status_code = 411
    return resp

你应该阅读 Uploading Files文档虽然。在 Flask 中使用像这样的通用模式时,它的值(value)是无价的。

关于python - 将图像从 python 客户端上传到 flask 服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22324947/

相关文章:

python - XlsxWriter 在公式单元格上设置格式

android - Picasso库异常崩溃

php - PHP 中的 HTTP if-none-match 和 if-modified-since 以及 304 说明

css - @fontface 适用于 http ://www. domain.com 但不适用于 http ://domain. com

python - Pandas:取消堆叠 DataFrame 的一列

python - 找不到命令 'toco'

python - 在 Python 中执行多个连续的正则表达式替换。效率低下?

javascript - 如何将多个图像直接堆叠在一起?

c++ - 在 OpenCV 中处理大图像

python - web.py:如何为任何 HTTP 方法选择性地隐藏带有 404 的资源?