安装包

pip install Pillow

如果在windows系统,需要下载whl文件手动pip安装

https://pypi.org/project/Pillow/#files

设置

1、首先在settings.py中定义MEDIA_ROOT与MEDIA_URL。例如:

MEDIA_ROOT = os.path.join(BASE_DIR, "files")
MEDIA_URL = "/files/"

files可以是项目根目录的任何一个文件夹

2、在urls.py的urlpatterns中,设置访问文件的url

from django.views.generic import TemplateView
url(r'^files/(?P<path>.*)$', serve, {"document_root": settings.MEDIA_ROOT})

?P<path>代表这一块的内容将作为参数path传给serve方法

serve方法是django自带的处理静态文件的方法

document_root是必须提供的文件位置

注意如果文件放在url注册的document_root之外,前端是不能访问到这些文件的

models.py

file = models.FileField()

  1. 定义upload_to="background/"

    表示上传的文件将会存在$MEDIA_ROOT/background/下

  2. ImageField和FileField实际上是CharFields,所以可以设置blank=True

serializers.py

正常写一个ModelSerializer

class FileSerializer(serializers.ModelSerializer):
class Meta:
model = File
fields = "__all__"

效果

写完view中的逻辑和注册路由后,访问对应的接口可以看到FileField字段是一个上传文件的按钮

上传文件后,该字段会返回可以访问文件的url

利用Django REST framework快速实现文件上传下载功能的更多相关文章

  1. django 12天(跨域,文件上传,下载,cookie,session)

    django 12天(跨域,文件上传,下载) 跨域 什么是跨域 1.协议不同 2.端口不同 3.主机不同 如何解决跨域 1.安装django-cors-headers模块 2.在settings.py ...

  2. JavaWeb实现文件上传下载功能实例解析

    转:http://www.cnblogs.com/xdp-gacl/p/4200090.html JavaWeb实现文件上传下载功能实例解析 在Web应用系统开发中,文件上传和下载功能是非常常用的功能 ...

  3. JavaWeb实现文件上传下载功能实例解析 (好用)

    转: JavaWeb实现文件上传下载功能实例解析 转:http://www.cnblogs.com/xdp-gacl/p/4200090.html JavaWeb实现文件上传下载功能实例解析 在Web ...

  4. WEB文件上传下载功能

    WEB文件上传下载在日常工作中经常用到的功能 这里用到JS库 http://files.cnblogs.com/meilibao/ajaxupload.3.5.js 上传代码段(HTML) <% ...

  5. Struts2实现文件上传下载功能(批量上传)

    今天来发布一个使用Struts2上传下载的项目, struts2为文件上传下载提供了好的实现机制, 首先,可以先看一下我的项目截图 关于需要使用的jar包,需要用到commons-fileupload ...

  6. javaweb项目中的文件上传下载功能的实现

    框架是基于spring+myBatis的. 前台页面的部分代码: <form action="${ctx}/file/upLoadFile.do"method="p ...

  7. php实现文件上传下载功能小结

    文件的上传与下载是项目中必不可少的模块,也是php最基础的模块之一,大多数php框架中都封装了关于上传和下载的功能,不过对于原生的上传下载还是需要了解一下的.基本思路是通过form表单post方式实现 ...

  8. 文件一键上传、汉字转拼音、excel文件上传下载功能模块的实现

    ----------------------------------------------------------------------------------------------[版权申明: ...

  9. C# 文件上传下载功能实现 文件管理引擎开发

    Prepare 本文将使用一个NuGet公开的组件技术来实现一个服务器端的文件管理引擎,提供了一些简单的API,来方便的实现文件引擎来对您自己的软件系统的文件进行管理. 在Visual Studio ...

随机推荐

  1. linux 无交互生成ssh rsa免秘证书

    [root@xxx tmp]# man ssh-keygen NAME ssh-keygen - authentication key generation, management and conve ...

  2. myisam和innodb 删除一条记录后,再次添加后,最大记录值

  3. 第211天:git和github的区别和使用详解

    一.git 1.什么是git 它是一个源代码管理工具,在一个项目中,凡是由开发人员编写的都算是源代码,源代码有必要管理起来,让源代码可以被追溯,主要记录每次变更了什么,谁主导这次变化.人为的维护比较麻 ...

  4. 【Python】Python基础

    源程序文件通常以.py为扩展名 #!/usr/bin/python shebang,即执行脚本时通知内容要启动的解释器 import platform 导入模块 print platform.unam ...

  5. http的无状态无连接

    搞爬虫的核心:http协议. 在理解http中的无状态和无连接时,有一些困惑,下文可以解决. 转自:http://www.cnblogs.com/bellkosmos/p/5237146.html h ...

  6. What Kind of Friends Are You? ZOJ - 3960(ZheJiang Province Contest)

    怎么说呢...我能说我又过了一道水题? emm... 问题描述: 给定 n 个待确定名字的 Friends 和 q 个问题.已知 c 个 Friends 的名字. 对于第 i 个问题,有  个 Fri ...

  7. Gson获取json串中的key-value

    1.依赖包 <dependency> <groupId>com.google.code.gson</groupId> <artifactId>gson& ...

  8. 【刷题】BZOJ 3529 [Sdoi2014]数表

    Description 有一张n×m的数表,其第i行第j列(1<=i<=n,1<=j<=m)的数值为能同时整除i和j的所有自然数之和.给定a,计算数表中不大于a的数之和. In ...

  9. loj6436【PKUSC2018】神仙的游戏

    $|S| \le 5 \times 10^5$ 题解 这题直接用通配符匹配的套路会错,因为重复部分的$?$可能同时被当做了$0$和$1$ 有长度为$i$的公共前缀后缀等价于有长度为$n-i$的循环节: ...

  10. 1:IMEI、MSISDN字段隐藏方法

     1.在服务器上找到带有手机号码及IMEI的报表,下载到本地:          2.找到如下方框的表格列(例如:ID:104的报表):