Django框架(十六:上傳圖片到自定義目錄下)
阿新 • • 發佈:2018-12-20
如何將圖片上傳到自定義目錄下
upload_to: 在根目錄下(MEDIA_ROOT)要生成的目錄
MEDIA_ROOT: 只要上傳圖片,肯定要設定,用於指定圖片上傳的根目錄。可以設定在static下(static目錄的搜尋路徑,已經通過STATICFILES_DIRS配置過了),也可以自定義根目錄(MEDIA_URL)。
在上一篇已經介紹了將圖片上傳到static目錄下的設定,現在我們來實現將圖片上傳自自定義目錄下。
- 首先設定settings.py檔案,如下:其中MEDIA_ROOT是隻要上傳圖片就要設定的;MEDIA_URL主要作用就是對映MEDIA_ROOT。方便以後在展示圖片的時候,可以使用這個鍵找到它的值。否則圖片可以上傳,但是無法載入圖片。
MEDIA_ROOT = os.path.join(BASE_DIR, 'media')
MEDIA_URL = '/media/'
from django.shortcuts import render from django.http import HttpResponse from .models import * def uploadimg(request): if request.method == 'GET': img = Picture.objects.get(id=1) return render(request,'index.html',{'img':img}) else: file = request.FILES.get('pic') pic = Picture(pic_url=file) pic.save() return HttpResponse('圖片上傳成功!')
- 重點在urls.py檔案中的設定,
from django.contrib import admin from django.urls import path, re_path from upload import views from django.views.static import serve from django.conf import settings urlpatterns = [ path('admin/', admin.site.urls), path('uploadimg/', views.uploadimg), # 作用:將上傳的圖片展示,用到了剛開始介紹到settings.py檔案中的設定。 re_path(r'^media/(.*)$', serve, {'document_root':settings.MEDIA_ROOT}) ]