1

使用 Django 1.5 和 Python 2.7.3。

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

我已经按照此处的示例介绍了如何发布文件但requests.FILES为空。

脚本.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

视图.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 是正确的(我可以在我的脚本中看到响应文本)。当我将 URL 指向http://httpbin.org/post示例中时,该脚本有效。

我有什么东西是requests.post我想念的吗?

4

1 回答 1

0

有那么一点尴尬,事实证明你真的需要 URL 中的尾部正斜杠。

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

于 2013-06-11T16:00:16.780 回答