0. 说明
使用 Django rest framenwork 框架开发后台服务程序时,解决文件(图片还能用 ImageField)上传和下载的问题。
1. 配置 settings.py
在项目根目录下创建 media/
,如果没有系统将自动生成该目录。
# 上传文件的存储位置
MEDIA_ROOT = os.path.join(BASE_DIR, 'media')
# 访问路径
MEDIA_URL = "/media/"
2. 配置 urls.py
from django.urls import re_path
from django.views.static import serve
from django.conf import settings
re_path(r'^media/(?P<path>.*)$', serve, {'document_root': settings.MEDIA_ROOT}),
3. 数据模型 models.py
class TestFile(models.Model):
id = models.BigAutoField(primary_key=True, help_text='编号')
upFile = models.FileField(upload_to='upload_files', null=True)
4. 基于DRF 的 views.py
class TestFileViewSet(viewsets.ModelViewSet):
queryset = TestFile.objects.all()
serializer_class = TestFileSerializer
5. 测试
使用 POST
方法上传请求,注意设置
- Content-Type = multipart/form-data
上传成功后,文件将存储于 项目根目录/media/upload_files/文件名.后缀
。
通过路径 http://127.0.0.1:8000/media/upload_files/文件名.后缀
访问。
.
.
.
.
.
.
桃花仙人种桃树,又摘桃花换酒钱_