2014-04-14 78 views
2

是否可以将文件发布到兼容文件和JSON数据的烧瓶应用程序?烧瓶 - 使用JSON发布文件

在我最初的开发中,我通过两个api端点来做这件事,它看起来很笨重。我希望能够使用一个POST而不是两个完成此操作。

这可能吗?

+2

你需要多部分请求 – njzk2

+2

只需制作多部分POST请求;其中一个部分是文件上传,其他部分可以是JSON编码的字符串,也可以包含单独的键/值,就像您使用常规形式的POST一样。 –

+0

工作,谢谢!猜猜我对这一切还有一些学习。 – polkid

回答

1

是的,您可以使用随附的JSON数据发布文件。例如:

import requests 
with open(path_to_file, 'rb') as my_file: 
     files = {'file': my_file} 
     payload = {'data1': 'foo', 'data2': 'bar'} 
     r = requests.post(data=payload, files=files) 

有很多关于瓶和要求(一个很不错的HTTP LIB)有用的信息在这里:

  1. http://flask.pocoo.org/docs/0.10/quickstart/#quickstart
  2. http://docs.python-requests.org/en/latest/user/quickstart/
+0

只有当payload中的每个参数都是一个字符串时,这个解决方案才会起作用,所以它不是一个真正的JSON对象。如果所有的参数都是字符串,那么可以将它们包含在'files'对象中。 – v4gil