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/文件名.后缀 访问。

.
.
.
.
.
.


桃花仙人种桃树,又摘桃花换酒钱_

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐