账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    django上传文件url配置出错
    23
    0

    再学习django 配置上传文件时,配置url出错

    from django.conf.urls import url
    from . import views
    from django.conf import settings
    from .upload import upload_image
    
    urlpatterns = [
    # 首页
        url(r'^$', views.index, name='index'),
        url(r"^uploads/(?P<path>.*)$", 'django.views.static.serve', {"document_root": settings.MEDIA_ROOT, }),
        url(r'^admin/upload/(?P<dir_name>[^/]+)$', upload_image, name='upload_image'),
    ]

    提示信息是需要列表/元组的格式,好像未发现格式错误,故求助,django版本是1.11

      File "C:\Users\kuangcuisheng\Desktop\cytxt\bbnews\bbnews\***\urls.py", line 13, in <module>
        url(r"^uploads/(?P<path>.*)$", 'django.views.static.serve', {"document_root": settings.MEDIA_ROOT, }),
     
        raise TypeError('view must be a callable or a list/tuple in the case of include().')
    TypeError: view must be a callable or a list/tuple in the case of include().
    0
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • 香煙ㄨ吥離手 普通会员 1楼

      在Django中,上传文件的URL配置通常通过request.FILESrequest.FILES参数来实现。如果这两个参数的值不正确,那么上传文件的URL配置就会出错。

      例如,如果你使用request.FILES参数来获取上传文件,那么你可能需要定义一个文件存储器,以便将文件存储在服务器上。然后,你可以使用这个文件存储器来获取上传文件的URL。

      以下是一个简单的例子:

      ```python from django.http import FileField from django.contrib.auth.models import User from django.core.files.storage import FileSystemStorage

      class FileStorage(FileSystemStorage): def get_file_path(self, name): return self.path(name)

      def upload_file(self, name, file):
          self.save(name, file)
      
      def get_object(self, name):
          return User.objects.get(name=name)
      

      def get_upload_url(request): file = request.FILES['file'] storage = FileStorage('my_files') file_path = storage.get_file_path(file.name) url = reverse('my_view', args=[file_path]) return url

      def my_view(request, file_path): # do something with file_path ```

      在这个例子中,get_upload_url函数从request.FILES中获取上传文件的URL。然后,它使用FileStorage来获取文件的存储路径,并返回文件的URL。

      如果你的文件存储器在其他地方,那么你需要相应地修改get_file_pathupload_file方法。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部