Python脚本使用请求将文件发布到Django应用程序 - 请求中没有任何内容.FILES

时间:2013-06-11 15:01:22

标签: django python-2.7 python-requests

使用Django 1.5和Python 2.7.3。

演示我的问题的简单示例。我无法使用Python +请求将文件发送到我们的Django webapp。我正在使用一个驻留在我的计算机上的脚本,并使用Django的内置服务器进行测试(也在本地运行)。

我已按照the example here了解如何发布文件,但requests.FILES为空。

script.py

import requests
import os

url="http://<myurl>/upload"
files={'file':('myfile.txt', open('myfile.txt', 'rb'))}
r=requests.post(url, files = files)
r.text  # Number of files in request.FILES: 0

views.py

def upload(request):
  return HttpResponse("Number of files in request.FILES: {0}".format(len(request.FILES)))

修改

标题:{'date': 'Tue, 11 Jun 2013 15:10:13 GMT', 'content-type': 'text/html; charset=utf-8', 'server': 'WSGIServer/0.1 Python/2.7.3'}

网址正确(我可以在脚本中看到响应文字)。当我将URL指向http://httpbin.org/post时,该脚本可用,如示例中所示。

我遗失的requests.post中有什么东西吗?

1 个答案:

答案 0 :(得分:0)

在一个有点尴尬的时刻,事实证明你真的需要URL中的尾随正斜杠。

url="http://<myurl>/upload/"