各位大神,django 内存问题求答疑,谢谢各位

当我的django后端接收前端提交的文件时
views中:
file = request.FILES.get(‘file’)

这个file是直接存到内存中吗
因为我用print(file.read()) 是可以直接打印出文件内容
那我需不需要像打开文件/关闭文件那样 用file.close()去关闭他呢?
如果不关闭当客户端断开链接的时候 会不会自动释放内存呢?

有没有什么办法来验证以上问题呢

pardon110
最佳答案

file只是个临时上传文件流句柄,无需手动关闭。

3年前 评论
讨论数量: 2
pardon110

file只是个临时上传文件流句柄,无需手动关闭。

3年前 评论
Jason990420

上传的数据存储在哪里

在保存上传的文件之前,数据需要存储在某个地方。

默认情况下,如果上传的文件小于2.5兆字节,则Django会将上传的所有内容保存在内存中。这意味着保存文件仅涉及对内存的读取和对磁盘的写入,因此非常快。

但是,如果上传的文件太大,则Django会将上传的文件写入存储在系统临时目录中的临时文件中。在类似Unix的平台上,这意味着您可以期望Django生成名为的文件/tmp/tmpzfp6I6.upload。如果上传的文件足够大,那么您可以观察到该文件的大小随着Django将数据流传输到磁盘而增大。

Django的缓存框架

3年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!