码迷,mamicode.com
首页 > 其他好文 > 详细

关于django批量上传图片

时间:2014-08-09 21:04:29      阅读:191      评论:0      收藏:0      [点我收藏+]

标签:des   os   io   数据   for   art   ar   cti   

本来想一张一张上传的,但是明显会对客户造成不必要的麻烦,所以如果前台一次性上传五张十张的话,那就简单的多。
 
但是后台我数据库对于图片存储的字段只有一个,不可能有多少张照片就要多少个字段来存储。也就是说,1:我每次只能在后台存一张到数据库,
2:在前台展示的时候我直接可以循环这一个字段来展示我的图片

那么这就涉及到一个列表跟数据循环存储的东西了

用到字典是因为我每张图片还有各自的图片描述,这两个信息时同时提交跟保存的。我把图片保存的url跟他的描述做成列表,然后再循环保存就搞定了。

这里主要用到的就是python的zip()函数
>>> s=[‘a‘,‘b‘]
>>> b=[‘1‘,‘2‘]
>>> zip(s,b)
[(‘a‘, ‘1‘), (‘b‘, ‘2‘)]

看我前台代码:
<form method="POST" action="/savephoto/{{id}}/" enctype="multipart/form-data" name="form">
                          <p><label>上传图片</label>
                           <input type="file" name = "file" id="file">
                          </p>
<p><label>对图片的描述</label>
              <textarea name="describe" id="describe" cols="50" rows="5"></textarea>
                          </p>

                          <p><label>上传图片</label>
                           <input type="file" name = "file1" id="file1">
                          </p>
<p><label>对图片的描述</label>
              <textarea name="describe1" id="describe1" cols="50" rows="5"></textarea>
                          </p>

后台:

    if ‘file‘ in request.FILES:
      image =request.FILES[‘file‘]
      des = request.POST.get(‘describe‘,‘‘)
      imglist.append(image)
      deslist.append(des)
    if ‘file1‘ in request.FILES:
      image =request.FILES[‘file1‘]
      des = request.POST.get(‘describe1‘,‘‘)
      imglist.append(image)
      deslist.append(des)
    
    info=zip(imglist,deslist)
    for (image,des) in info:
      m= UserPhoto(photo=image,user_id=id,describe=des)
      m.save()

这样就成功将多图片的信息循环保存到UserPhoto里了!

关于django批量上传图片,布布扣,bubuko.com

关于django批量上传图片

标签:des   os   io   数据   for   art   ar   cti   

原文地址:http://www.cnblogs.com/jxrichar/p/3901412.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!