突然心血来潮,研究了下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上传文件的两种方式相关推荐

  1. LayUI upload上传组件上传文件的两种方式(手动上传、自动上传)

    1 手动上传 上传文件分为两步,第一步选择文件,第二步上传文件. HTML代码: <input type='button' id='selectFile' value='选择文件'> &l ...

  2. WebUploader 上传文件的两种方式(手动上传,自动上传)

    1 手动上传 上传文件分为两步,第一步选择文件,第二步上传文件. HTML代码: <input type='button' id='selectFile' value='选择文件'> &l ...

  3. vue前端实现上传文件的两种方式

    1.使用form表单的形式 第一种方式就是使用FormData的方式进行上传 html代码: <el-form :model="upform" :rules="up ...

  4. flask中使用FileField上传文件的两种方式+前端页面上传文件(flask三种上传文件方式)

    文章目录 上传文件方式一: 1.index.html文件: 2.主文件main.py: 上传文件方式二: 1.index2.html文件: 2.main.py文件: 上传文件方式三: 1.index3 ...

  5. django文件上传到服务器,django上传文件的三种方式

    Django文件上传需要考虑的重要事项 文件或图片一般通过表单进行.用户在前端点击文件上传,然后以POST方式将数据和文件提交到服务器.服务器在接收到POST请求后需要将其存储在服务器上的某个地方.D ...

  6. 用JSP实现上传文件的两种方法

    在用Java开发企业器系统的使用,特别是涉及到与办公相关的软件开发的时候,文件的上传是客户经常要提到的要求.因此有 一套很好文件上传的解决办法也能方便大家在这一块的开发. 首先申明,该文章是为了自己记 ...

  7. java spring上传_SpringMVC上传文件的三种方式

    直接上代码吧,大伙一看便知 前台: pageEncoding="utf-8"%> Insert title here 采用流的方式上传文件 采用multipart提供的fil ...

  8. SpringMVC上传文件的三种方式

    /** 通过流的方式上传文件* @RequestParam("file") 将name=file控件得到的文件封装成CommonsMultipartFile 对象*/@Reques ...

  9. Linux远程上传文件的三种方式详解

    1.FileZilla(直接拖) https://www.filezilla.cn/download/client 2.lrzsz 2.1.yum install lrzsz 2.2.在CRT中配置上 ...

最新文章

  1. 骑行广州大学城 外环十大校门
  2. RAC常见命令检查状态
  3. 2017西南计算机数学基础,[0838]《计算机数学基础》西南大学 2017 秋学期 计算机专业 作业题目及参考答案资料讲解.docx...
  4. C++primer习题--第1章
  5. Grafana全面瓦解
  6. 性能优化之雅虎35条军规
  7. SpringBoot实现文件在线预览
  8. word中输入带圈字符
  9. Python图像匹配
  10. Java替换第一个和最后一个字符串
  11. 计算机各部分名称ppt,PowerPoint软件界面各部分名称(PPT2010/2013/2016)
  12. 加入共享宽带,让你的闲置宽带循环利用再变现
  13. 深度学习中的IoU概念理解
  14. Matlab——图形绘制——三维立体图形 剔透玲珑球 动态图——彗星状轨迹图
  15. 2009NOIP提高组初赛讲解
  16. day 86 Vue学习之五DIY脚手架、webpack使用、vue-cli的使用、element-ui
  17. 那些年,我们一起写的情诗
  18. xzfnz.fsj.kzxf.xkjf你的反馈没看到房间内了覆盖面,发
  19. 多帧点云数据拼接合并_基于单帧图像与稀疏点云融合的道路交通标线提取算法研究...
  20. 解决: This Python interpreter is in a conda environment, but the environment has not been activat

热门文章

  1. 图像处理: Canny边缘检测
  2. OpenCV——Canny边缘检测(cv2.Canny())
  3. 解释以下linux命令的含义,无法理解linux命令的输出
  4. Spine 多个动作连播时是否要K初始帧
  5. python异步编程
  6. 抖音矩阵系统,抖音矩阵系统源码,抖音SEO源码、
  7. php r n 不换行,php r n 不换行怎么办
  8. spring 框架简介与搭建
  9. locate命令用法详解:
  10. 11 款扫描 Linux 服务器安全漏洞和恶意软件的工具