django-admin实现文件上传下载

参考:

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}),
    
]

这样就大功告成了

posted @ 2021-12-13 14:22  Mars.wang  阅读(875)  评论(0编辑  收藏  举报