【问题标题】:django upload files proving more difficult than necessarydjango 上传文件证明比必要的更困难
【发布时间】:2016-02-12 17:54:00
【问题描述】:

我正在尝试允许用户在我的 django 网站上上传文件。我从 django 文档中的示例命令开始,输入到 views.py 中,独立于表单或模型,只是在模板中引用(并对其进行了修改,以便可以一次上传多个文件):

  def Upload(request):
    for count, x in enumerate(request.FILES.getlist("files")):# allows for multiple iterations/files
      def process():
         with open('/Users/Deirdre/bing/upload/media/file_', + str(count) 'wb+') as destination:
            for chunk in f.chunks():
               destination.write(chunk)
       process(x)
     return HttpResponse("File(s) uploaded")

但是,在“with open... as”中,服务器不断返回错误“SyntaxError: invalid syntax”或“unexpected indentation”...。 我知道这些都不是真的,所以有没有办法绕过这个困难?为什么django没有配置命令???

【问题讨论】:

  • 为什么要在循环中定义函数?事实上,似乎根本没有任何理由拥有一个功能。只需将代码放入循环本身即可。

标签: python django file-handling


【解决方案1】:

你的缩进是错误的!下面给出正确的缩进,必须有 4 个空格缩进

from django.shortcuts import render
from django.http import HttpResponse

def Upload(request):
    for count, x in enumerate(request.FILES.getlist("files")):
        def process(f):
            with open('/Users/Michel/django_1.8/projects/upload/media/file_' + str(count), 'wb+') as destination:
                for chunk in f.chunks():
                    destination.write(chunk)
        process(x)
    return HttpResponse("File(s) uploaded!")

【讨论】:

  • 这似乎已经修复了这个错误,但现在它让我回到了原来的错误,服务器告诉我:使用 upload.urls 中定义的 URLconf,Django 尝试了这些 URL 模式,按此顺序:^admin/ ^index/ 即使我完全按照教程设置了整个数据库
  • 如果它帮助您解决问题,请接受答案!谢谢
  • 问题中的缩进是错误的,但是Python不需要4个空格的缩进。它只需要保持一致。
猜你喜欢
  • 2021-01-15
  • 2017-11-30
  • 1970-01-01
  • 1970-01-01
  • 2012-03-10
  • 2012-09-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多