參考:
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}), ]
這樣就大功告成了