Django實現(xiàn)圖片上傳功能步驟解析
更新時間:2020年04月22日 15:32:11 作者:小陸同學
這篇文章主要介紹了Django實現(xiàn)圖片上傳功能步驟解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
1.首先是html頁面的form表單的三大屬性,action是提交到哪,method是提交方式,enctype只要有圖片上傳就要加這個屬性
Django框架自帶csrf_token ,所以需要在前端頁面也生成csrf_token字符串,來驗證真實客戶
<form action="/pic_upload/" method="POST" enctype="multipart/form-data"> {% csrf_token %} <input type="file" name="file"> <input type="submit" value="提交"> </form>
2.如下是上傳圖片的接口:
def pic_upload(request): if request.method == "GET": return render(request,"helloapp/pic_upload.html",locals()) if request.method == "POST": error = "" fp = request.FILES.get("file") # fp 獲取到的上傳文件對象 if fp: path = os.path.join(STATICFILES_DIRS[0],'image/' + fp.name) # 上傳文件本地保存路徑, image是static文件夾下專門存放圖片的文件夾 # fp.name #文件名 #yield = fp.chunks() # 流式獲取文件內容 # fp.read() # 直接讀取文件內容 if fp.multiple_chunks(): # 判斷上傳文件大于2.5MB的大文件 # 為真 file_yield = fp.chunks() # 迭代寫入文件 with open(path,'wb') as f: for buf in file_yield: # for情況執(zhí)行無誤才執(zhí)行 else f.write(buf) else: print("大文件上傳完畢") else: with open(path,'wb') as f: f.write(fp.read()) print("小文件上傳完畢") models.ImgPath.objects.create(path=('image/' + fp.name)) # image是static文件夾下專門存放圖片的文件夾 else: error = "文件上傳為空" return render(request,"helloapp/pic_upload.html",locals()) return redirect("helloapp/pic_index/") # 重定向到首頁
3.做個圖片展示的頁面,對圖片展示對應的接口傳過來的參數(shù)加以判斷
{% for img in imgs %} <img src="{% static img.path %}"> {% empty %} <h1>您沒有上傳任何圖片</h1> {% endfor %}
4.圖片展示的接口:
def pic_index(request): imgs = models.ImgPath.objects.all() return render(request,'helloapp/pic_index.html',locals())
至此,Django中一個簡單的圖片上傳到展示就做好了
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關文章
Python?Requests使用Cookie的幾種方式詳解
這篇文章主要給大家介紹了關于Python?Requests使用Cookie的幾種方式,Python中的requests庫可以使用cookie來維持會話狀態(tài),實現(xiàn)登錄等操作,需要的朋友可以參考下2023-07-07Python數(shù)據(jù)分析之繪制m1-m2數(shù)據(jù)
這篇文章主要介紹了Python數(shù)據(jù)分析之繪制m1-m2數(shù)據(jù),文章基于python的相關資料展開詳細的內容介紹,具有一定的參考價值,需要的小伙伴可以參考一下2022-05-05利用Python對文件夾下圖片數(shù)據(jù)進行批量改名的代碼實例
今天小編就為大家分享一篇關于利用Python對文件夾下圖片數(shù)據(jù)進行批量改名的代碼實例,小編覺得內容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧2019-02-02