django + python上传文件的两种方式
突然心血来潮,研究了下django+python上传文件的两种方式。
第一:直接采用文件读写的方式上传
1. settings.py文件中设置文件的存放路径和文件读取路径
MEDIA_ROOT = os.path.join(BASE_DIR, 'media')
MEDIA_URL = '/media/'
2. html模板文件:
<form method="post" enctype="multipart/form-data"><input type="file" name='photo'>
</form>
3. python后台代码
import os
from django.conf import settingsfile = request.FILES.get('photo')saved_path = os.path.join(settings.MEDIA_ROOT, 'user_photos')
if not os.path.exists(saved_path): #如果文件路径不存在则创建文件保存目录os.mkdir(saved_path)saved_file = os.path.join(saved_path, file.name)#file.name为带后缀的文件名with open(saved_file, 'wb+') as of: #以二进制留写的方式写入文件,文件不存在则自动创建if file.multiple_chunks():#判断如果文件大于默认值2.5M(可以修改)则采用分块的方式上传for fc in file.chunks():of.write(fc)else:of.write(file.read())#小于2.5M则直接上传
第二:利用django自带的文件存储系统上传
1. settings.py文件设置同上
2. html模板同上
3. 模型类定义
from django.db import modelsclass UserInfo(models.Model):photo = models.ImageFile(upload_to="user_photo")#如果目录不存在django会自动创建
4. python后台代码
file = request.FILES.get('photo')u = UserInfo()
u.photo = fileu.save()
django + python上传文件的两种方式相关推荐
- LayUI upload上传组件上传文件的两种方式(手动上传、自动上传)
1 手动上传 上传文件分为两步,第一步选择文件,第二步上传文件. HTML代码: <input type='button' id='selectFile' value='选择文件'> &l ...
- WebUploader 上传文件的两种方式(手动上传,自动上传)
1 手动上传 上传文件分为两步,第一步选择文件,第二步上传文件. HTML代码: <input type='button' id='selectFile' value='选择文件'> &l ...
- vue前端实现上传文件的两种方式
1.使用form表单的形式 第一种方式就是使用FormData的方式进行上传 html代码: <el-form :model="upform" :rules="up ...
- flask中使用FileField上传文件的两种方式+前端页面上传文件(flask三种上传文件方式)
文章目录 上传文件方式一: 1.index.html文件: 2.主文件main.py: 上传文件方式二: 1.index2.html文件: 2.main.py文件: 上传文件方式三: 1.index3 ...
- django文件上传到服务器,django上传文件的三种方式
Django文件上传需要考虑的重要事项 文件或图片一般通过表单进行.用户在前端点击文件上传,然后以POST方式将数据和文件提交到服务器.服务器在接收到POST请求后需要将其存储在服务器上的某个地方.D ...
- 用JSP实现上传文件的两种方法
在用Java开发企业器系统的使用,特别是涉及到与办公相关的软件开发的时候,文件的上传是客户经常要提到的要求.因此有 一套很好文件上传的解决办法也能方便大家在这一块的开发. 首先申明,该文章是为了自己记 ...
- java spring上传_SpringMVC上传文件的三种方式
直接上代码吧,大伙一看便知 前台: pageEncoding="utf-8"%> Insert title here 采用流的方式上传文件 采用multipart提供的fil ...
- SpringMVC上传文件的三种方式
/** 通过流的方式上传文件* @RequestParam("file") 将name=file控件得到的文件封装成CommonsMultipartFile 对象*/@Reques ...
- Linux远程上传文件的三种方式详解
1.FileZilla(直接拖) https://www.filezilla.cn/download/client 2.lrzsz 2.1.yum install lrzsz 2.2.在CRT中配置上 ...
最新文章
- 骑行广州大学城 外环十大校门
- RAC常见命令检查状态
- 2017西南计算机数学基础,[0838]《计算机数学基础》西南大学 2017 秋学期 计算机专业 作业题目及参考答案资料讲解.docx...
- C++primer习题--第1章
- Grafana全面瓦解
- 性能优化之雅虎35条军规
- SpringBoot实现文件在线预览
- word中输入带圈字符
- Python图像匹配
- Java替换第一个和最后一个字符串
- 计算机各部分名称ppt,PowerPoint软件界面各部分名称(PPT2010/2013/2016)
- 加入共享宽带,让你的闲置宽带循环利用再变现
- 深度学习中的IoU概念理解
- Matlab——图形绘制——三维立体图形 剔透玲珑球 动态图——彗星状轨迹图
- 2009NOIP提高组初赛讲解
- day 86 Vue学习之五DIY脚手架、webpack使用、vue-cli的使用、element-ui
- 那些年,我们一起写的情诗
- xzfnz.fsj.kzxf.xkjf你的反馈没看到房间内了覆盖面,发
- 多帧点云数据拼接合并_基于单帧图像与稀疏点云融合的道路交通标线提取算法研究...
- 解决: This Python interpreter is in a conda environment, but the environment has not been activat