1. 程式人生 > >django之media配置

django之media配置

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(rmedia/(?P<path>.*)$, serve, {document_root: settings.MEDIA_ROOT}) # 主要以media開頭,後面寫什麽都行 ]

django之media配置