標籤:path value class roo 圖片上傳 name ase 後台管理 ipa
上傳圖片
- 當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==3.4.1
- 圖片儲存路徑
- 在項目根目錄下建立media檔案夾
- 圖片上傳後,會被儲存到“/static/media/cars/圖片檔案”
- 開啟settings.py檔案,增加media_root項
MEDIA_ROOT=os.path.join(BASE_DIR,"static/media")
- 使用django後台管理,遇到ImageField類型的屬性會出現一個file框,完成檔案上傳
- 手動上傳的模板代碼
<html><head> <title>檔案上傳</title></head><body> <form method="post" action="upload/" enctype="multipart/form-data"> <input type="text" name="title"><br> <input type="file" name="pic"/><br> <input type="submit" value="上傳"> </form></body></html>
from django.conf import settingsdef upload(request): if request.method == "POST": f1 = request.FILES[‘pic‘] fname = ‘%s/cars/%s‘ % (settings.MEDIA_ROOT,f1.name) with open(fname, ‘w‘) as pic: for c in f1.chunks(): pic.write(c) return HttpResponse("ok") else: return HttpResponse("error")
django之上傳圖片