美文网首页
上传文件

上传文件

作者: 流蓝浅 | 来源:发表于2018-04-18 09:53 被阅读0次

    1:配置setting的设置
    2:定义上传文件的入口
    3:定义处理上传文件的view函数
    4:配置路径url

    当 Django 在处理文件上传的时候,文件数据被保存在 request.FILES

     FILES 中的每个键为<input type="file" name="" />中的 name

     注意:要包含数据需要注意一下两方面:

         FILES 请求的方法为 POST 
    
         提交的 <form>带有 enctype="multipart/form-data" 
    

     否则,FILES 将为一个空的类似于字典的对象

     模型定义中将属性定义成 models.ImageField 类型 :

       pic=models.ImageField(upload_to='cars/') 
    

     注意:如果属性类型为 ImageField 需要安装包 Pilow

       pip install Pillow 
    
    1:配置setting的设置

    o 在项目根目录下 static 目录下创建 media 文件夹

    o 图片上传后,会被保存到 “/static/media/图片文件”

    o settings.py 文件中增加 media_root 项

         MEDIA_ROOT=os.path.join(BASE_DIR,"static/media") 
    
    2:定义上传文件的入口

    与平常的表单不同之处:要加上enctype="multipart/form-data"

      <form method="post" action="upload/" enctype="multipart/form-data">
                <br />{% csrf_token %}<br />
                <input type="text" name="title"><br>
    
                <input type="file" name="pic"/><br>
    
                <input type="submit" value="上传 ">
    
            </form>
        </body>
    
    3:定义处理上传文件的view函数
    
    def upload(request):
        if request.method == "POST": # 先判断请求方式
    
            f1 = request.FILES["pic"] #拿到文件
            fname = "%s/%s" % (settings.MEDIA_ROOT, f1.name) # 拼接文件的路径
            with open(fname, "wb+") as pic:
                for c in f1.chunks():
                    pic.write(c)  # 将文件写入这个路径中
            return HttpResponse("ok")
        else:
            return HttpResponse("error")
    
    
    
    4:配置路径url
      url(r"^upload/$", views.upload),
    

    相关文章

      网友评论

          本文标题:上传文件

          本文链接:https://www.haomeiwen.com/subject/hmzmkftx.html