寫在前面 其實media配置也可以完全用static代替(看你自己的選擇),static代替的方法是直接在mobles.py里設置用戶上傳頭像的時候,修改一下用戶上傳頭像時的保存位置 當設置成static/avatar/之後,我們後期在獲取用戶上傳的文件時就可以在其前面加一個static就可以獲取到 ...
寫在前面
其實media配置也可以完全用static代替(看你自己的選擇),static代替的方法是直接在mobles.py里設置用戶上傳頭像的時候,修改一下用戶上傳頭像時的保存位置
當設置成static/avatar/之後,我們後期在獲取用戶上傳的文件時就可以在其前面加一個static就可以獲取到了(相當於獲取靜態文件資源!!)
1.media配置
在django中,我們所需的靜態文件資源預設是放在static文件夾下的
用戶上傳的文件也應該單獨放在某個文件夾下
media配置的作用:該配置可以讓用戶上傳的所有文件都固定的存放在某一個指定的文件夾下
後期我們在從資料庫存取對應用戶上傳的文件時,也可以相對應的取出
1.1 配置用戶上傳文件的存儲位置
在setting.py中書寫以下代碼:
MEDIA_ROOT = os.path.join(BASE_DIR,'media')
# 用戶上傳的文件都會放在項目文件的media文件夾里
# 不需要自己創建該文件夾,用戶上傳文件之後,系統會自動幫你創建
1.2 開設後端指定資源
在urls.py中書寫以下指定代碼:
# 暴露後端指定文件夾資源
re_path(r'^media/(?P<path>.*)',serve,{'document_root':settings.MEDIA_ROOT})
# 上述固定寫法,media是和static一個意思,url遇見media會自動去後面settings.MEDIA_ROOT配置好的路徑找對應的資源
2.用戶頭像展示
# {{ article_obj.blog.userinfo.avatar }}是獲取文件當時的存儲位置
# 加個media是指遇見media就去media文件夾里找用戶上傳的文件
<img class="media-object" src="/media/{{ article_obj.blog.userinfo.avatar }}" alt="..." width="60">