django之上傳圖片

來源:互聯網
上載者:User

標籤: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之上傳圖片

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.