Django后台批量获取InMemoryUploadedFile文件列表的方法

不晚
不晚
发布时间:2026-10-13| 4人浏览过
原创

本文介绍Django中如何处理前端提交的图片集合。默认情况下request.FILES.get仅返回单个文件,针对批量上传场景,需使用getlist方法获取MultiValueDict中的InMemoryUploadedFile列表,从而实现批量文件处理。

Django批量获取文件列表的方法

在Django项目开发过程中,前端通过Form表单提交图片集合是常见需求。


var formdata = new FormData();
formdata.append("csrfmiddlewaretoken",'{{ csrf_token }}');
if ($('.js_file')[0].files.length > 0){
 $.each($('.js_file')[0].files, function (index,file) {
  formdata.append("file",file);
 })
}

当处于调试或高度模式查看时,可以观察到后端接收到的数据结构。


<MultiValueDict: {'file': [<InMemoryUploadedFile: wx_friends.png (image/png)>, <InMemoryUploadedFile: wx_qrcode.png (image/png)>, <InMemoryUploadedFile: wx_wechat.png (image/png)>]}>

若使用imgs = request.FILES.get('file')进行获取,结果只能得到单个文件对象。

这是因为Django默认机制仅处理单个文件上传。若要一次性批量处理多个文件,必须采用特定的获取方式。MultiValueDict是一种特殊定义的字典类,从中提取列表数据需要调用getlist方法。

因此,获取图片列表的正确代码写法如下。


request.FILES.getlist('file')

通过上述方式获取到的结果即为InMemoryUploadedFile类的列表,后续可根据具体业务需求对该列表进行相应处理。

以上关于Django后台获取文件列表InMemoryUploadedFile的示例内容到此结束,希望能为读者提供参考,并欢迎大家继续支持本站。

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。