django 20、上传文件原理解析

本文探讨了Django中文件上传的工作原理,包括默认情况下Django如何处理小于2.5MB的文件以及大文件的临时存储。解释了`request.FILES`字典的作用,以及如何通过`UploadedFile`对象访问和操作上传文件,强调了Django已内置分块读取大文件的功能,一般情况下无需额外处理。
摘要由CSDN通过智能技术生成

最近还是被django的上传大文件搞得晕头转向,转而看了这方面的原理,把自己的心得写了出来。

首先,我想说:如果你使用的是django默认的FileField的形式通过表单上传,那么其实你完全不需要管理如何上传,或者自己去写一个分块读取写入的函数,

这个是django已经帮你做完了。

表单接收到的上传文件数据在还没有被我们完全接收时,数据存放在哪里?

 

1默认,上传文件<2.5M,Django放在内存里

2大文件,会将文件写入到临时文件中

这个文件在临时文件路径中,上传完毕,将调用View中的

_Upload()方法将临时文件夹中的临时文件

分块写到上传文件的存放路径下,每块的大小为64K,写完后临时

文件将被删除。

 

注意第二点:django已经实现了把大文件拆分成块帮你读取,并实现上传,因此即使你存在大文件上传,速度比较慢,并不要紧,django已经帮你处理了。

了解到这里,我依然会把其他原理部分讲解一下:

 

headImg =request.FILES["headImg"]

request.FILES:文件怎么被存储在磁盘上或者内icunzhong

一个处理表单的视图将在request.FILES中接受文件数据,它是字典。

可以通过request.FILES[“file”]键来访问

uf = UploadFileForm(request.POST,request.FILES)

  • 4
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值