Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用请求将文件发布到Django应用程序的Python脚本-request.files中无任何内容_Django_Python 2.7_Python Requests - Fatal编程技术网

使用请求将文件发布到Django应用程序的Python脚本-request.files中无任何内容

使用请求将文件发布到Django应用程序的Python脚本-request.files中无任何内容,django,python-2.7,python-requests,Django,Python 2.7,Python Requests,使用Django 1.5和Python 2.7.3 用一个简单的例子来说明我的问题。我无法使用Python+请求将文件发送到我们的Django webapp。我正在使用驻留在计算机上的脚本,并使用Django的内置服务器(也在本地运行)进行测试 我已经学习了如何发布文件,但是请求。文件为空 script.py 编辑 标题:{'date':'Tue,2013年6月11日15:10:13 GMT','content type':'text/html;charset=utf-8','server':'

使用Django 1.5和Python 2.7.3

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

我已经学习了如何发布文件,但是
请求。文件
为空

script.py 编辑

标题:
{'date':'Tue,2013年6月11日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
如示例所示


在我的
请求。post
中是否有我遗漏的东西?

在一个稍微尴尬的时刻,你发现你真的需要URL中的尾部正斜杠


url=”http:///upload/“

您可以将发送到服务器的请求头发布吗?通常,Django不会在头中没有multipart/encode的情况下填充
request.FILES
。编辑以包含
r.headers
中的头。这来自文档:>请注意,request.FILES仅在请求方法为POST且发布请求的方法具有属性enctype=“multipart/form data”时才会包含数据. 否则,request.FILES将为空。在我的视图中打印
request
时,我看到
CONTENT\u TYPE:multipart/form data
。我不确定如何使用请求设置
enctype
。如果你看到了,那就好了!我会推荐一些东西,试着从一个网页上向视图发布一个文件(通过一些html你可以做到这一点)。如果文件被上传,请查看请求是如何符合的,并尝试在脚本中模拟它。
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
def upload(request):
  return HttpResponse("Number of files in request.FILES: {0}".format(len(request.FILES)))