關於django批量上傳圖片


本來想一張一張上傳的,但是明顯會對客戶造成不必要的麻煩,所以如果前台一次性上傳五張十張的話,那就簡單的多。
 
但是后台我數據庫對於圖片存儲的字段只有一個,不可能有多少張照片就要多少個字段來存儲。也就是說,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里了!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM