Python Django中的空request.FILES

Python Django中的空request.FILES,python,django,forms,post,Python,Django,Forms,Post,我正试图通过post请求将文件发送到本地主机上的服务器。我在Firefox中使用HttpRequester(也在Chrome中尝试过Postman,在Android上尝试过Tasker)来请求sumbit。 问题是request.FILES总是空的。但是当我试图打印request.body时,它会显示一些非人类可读的数据,其中特别包括我想要上传的文件中的数据(这是一个数据库)。所以,文件以某种方式到达服务器对我来说是有意义的 来自Django文档: 请注意,只有在请求方法为POST时,文件才会包

我正试图通过post请求将文件发送到本地主机上的服务器。我在Firefox中使用HttpRequester(也在Chrome中尝试过Postman,在Android上尝试过Tasker)来请求sumbit。 问题是
request.FILES
总是空的。但是当我试图打印
request.body
时,它会显示一些非人类可读的数据,其中特别包括我想要上传的文件中的数据(这是一个数据库)。所以,文件以某种方式到达服务器对我来说是有意义的

来自Django文档:

请注意,只有在请求方法为POST时,文件才会包含数据 而发布到请求的 enctype=“多部分/表单数据”。否则,文件将为空 类似字典的对象

当我试图将请求的内容类型设置为“多部分/表单数据”时,出现错误“多部分中的无效边界:无”。当我加上',一个错误消失了;边界=边界”到内容类型

另一种方法是设置enctype=“多部分/表单数据”

因此,我有几个问题:

  • 我应该完全使用多部分/表单数据内容类型吗
  • 在哪里可以指定enctype?(标题、参数等)
  • 为什么文件的数据包含在request.body中,而request.FILES为空
  • 谢谢

  • 我应该完全使用多部分/表单数据内容类型吗
  • Django只支持
    多部分/表单数据
    ,因此必须使用该内容类型

  • 在哪里可以指定enctype?(标题、参数等)
  • 在普通HTML中,只需将
    enctype=“multipart/form data”
    作为表单元素的参数之一。在HttpRequester中,它更复杂,因为我认为默认情况下它缺少对
    多部分/表单数据的支持。http://www.w3.org/TR/html4/interact/forms.html#h-17.13.4.2有关
    多部分/表单数据的更多详细信息
    ,应可以手动在HttpRequester中运行

  • 为什么文件的数据包含在request.body中,而request.FILES为空
  • 你已经回答过了:

    请注意,仅当请求方法为POST且发送到请求的方法具有enctype=“multipart/form data”时,文件才会包含数据否则,文件将是一个类似于字典的空白对象。