美文网首页
上传文件

上传文件

作者: 流蓝浅 | 来源:发表于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