django之media配置
阿新 • • 發佈:2019-02-16
bsp document user class 頭像 username vat .py fault
一、沒有配置Media
avatar = models.FileField(upload_to=‘avatars/‘, default=‘/avatars/default.png‘) # 儲存頭像的models代碼
Django實現:
- django會將文件對象下載到項目的根目錄中avatars文件夾中(如果沒有avatars文件夾,Django會自動創建)
- default的意思是是如果該用戶沒有頭像,會默認去找avatars下的default.png
二、Media配置
首先django有兩種靜態文件:
- /static/ : js , css ,img
- /media/ : 用戶上傳文件
配置Media
MEDIA_ROOT = os.path.join(BASE_DIR, ‘media‘)
獲取用戶上傳頭像
avatar_obj = request.FILES.get(‘avatar‘) user_obj = UserInfo.objects.create_user( username=user, password=pwd, email=email, avatar=avatar_obj, )
配置Media後的django實現:
會將文件對象下載到MEDIA_ROOT中avatars文件夾中(如果沒有avatars文件夾,Django會自動創建),user_obj的avatar存的是文件路徑。
三、Media配置之MEDIA_URL
配置MEDIA_URL是為了讓客戶端直接訪問Media中的數據,類似於STATIC_URL
settings.py
MEDIA_URL = ‘/media/‘
urls.py
from django.urls import path, re_path from django.views.static import serve from cnblog import settings urlpatterns= [ # media配置 re_path(r‘media/(?P<path>.*)$‘, serve, {‘document_root‘: settings.MEDIA_ROOT}) # 主要以media開頭,後面寫什麽都行 ]
django之media配置