python请求模块无法在django服务器上传文件

时间:2013-11-08 07:15:01

标签: python django curl libcurl pycurl

我正在尝试通过python客户端将文件上传到django python服务器。

我试过了 -

import requests

url = 'http://wings.spectrumserver/sdm/lists'
files = {'file': open('file.ext', 'rb')}
r = requests.post(url, files=files)

但不知怎的,它不起作用。 No error but no output/upload as well

我通过浏览器和命令行成功上传文件。

curl -i --form docfile=@localfilename http://wings.spectrumserver/sdm/lists

请建议做什么??

我对curl和python知之甚少,但也许有人可以在pycurl中提出一些复制这个curl命令的内容,因为它已经在使用curl。

有关问题的详情,请参阅此处

upload file to django server using curl

2 个答案:

答案 0 :(得分:1)

我认为这里的问题是文件元素的名称。它应该是docfile。在curl示例中,您已将其作为docfile传递,但在python脚本中,您将其保留为file

改变这一行:

files = {'file': open('file.ext', 'rb')}

到此:

files = {'docfile': open('file.ext', 'rb')}

答案 1 :(得分:0)

当您在视图中查看请求时,您可能会在request.FILES ['file']中看到它 我遇到了问题,因为我在头文件中设置不好。