django-admin實現檔案上傳下載
阿新 • • 發佈:2021-12-13
參考:
https://www.cnblogs.com/zerotest/p/14387266.html
https://blog.csdn.net/iteye_10850/article/details/82615387
在網站中對使用者開放上傳下載功能是很常見的需求。
最近領導提出,我們的api註冊中心,需要支援使用者使用python指令碼對結果進行格式轉換
於是我們添加了檔案的上傳下載功能
一、模型models
在模型中指定儲存檔案的欄位
#底層mysql還是一個varchar型別,存的是檔案在專案中的相對路徑 result_filter = models.FileField(upload_to='{app_name}/', blank=True, null=True,max_length=100,verbose_name='結果轉換指令碼')
二、settings檔案中指定檔案目錄
settings加入
MEDIA_URL = 'file/' MEDIA_ROOT = 'file/'
MEDIA_ROOT = 'file/'
於是上傳檔案的路徑就是MEDIA_ROOT = 'file/'與upload_to='appname/'連起來file/appname/
上傳a.txt,目錄為file/appname/a.txt。
MEDIA_URL = 'file/'
表示任何上傳檔案連結字首為'file/'與upload_to='appname/'連起來file/appname/
三、urls.py中配置上傳下載的介面
這個是全域性的urls.py
from django.conf import settings from django.contrib import admin from django.urls import path, include, re_path from django.views.static import serve urlpatterns = [ #... re_path(r"file/(?P<path>.*)$", serve, {"document_root": settings.MEDIA_ROOT}), ]
這樣就大功告成了