Flask中如何接收多文件?
环境
windows 10 64bit
anaconda3 with python 3.7
flask 1.1.2
前言
web
后端接收多文件,在实际项目中也算是个常见的需求,本文就来看看,在flask
中如何来实现这个需求。
实例
先来看后端代码,少量注释写在了代码中
from flask import Flask, request, jsonify app = Flask(__name__) @app.route('/upload', methods=['POST']) def index(): # 使用request模块接收带对应标签的文件列表,这里对应图片和视频 image_files = request.files.getlist('image') video_files = request.files.getlist('video') # 判断是否有空文件 if not image_files and not video_files: return jsonify({ "code": -1, "message": "No upload images or videos." }) # 从文件列表依次取出并保存,文件名与上传时一致 for image_file in image_files: image_file.save(image_file.filename) # 同上 for video_file in video_files: video_file.save(video_file.filename) return jsonify({ "code": 0, "message": "upload images and videos success." }) if __name__ == '__main__': # 启动flask app app.run('0.0.0.0', debug=True, port=5000)复制代码
示例代码就这么简单,写完后,保存,启动服务
python app.py复制代码
客户端部分,这里使用postman
这个工具来进行模拟请求,打开postman
,新建一个请求,在Body
里面携带参数,选择form-data
。
鼠标点击key
值尾部,出现Text
和File
两种类型,这里我们选择File
,这里我们需要2个key
值,分别是image
和video
,这2个值在flask
中会用到,2者匹配起来就可以了,你想写其它的字符都可以
准备就绪后,就可以点击发送了,成功后,在响应部分,可以看到返回值json
数据
同时,在flask
后端,也成功接收并保存了对应的图片文件和视频文件,文件名与上传时的文件名保持一致
作者:迷途小书童的Note
链接:https://juejin.cn/post/7028389854547279903