用python flask_restplus什么是正确的方式有一个帖子,并获得方法来获取和推送文件例如xlsx到服务器?Python restplus API上传和下载文件
是否需要使用marshaling?
参考:https://philsturgeon.uk/api/2016/01/04/http-rest-api-file-uploads/
这个答案给一般信息,但不是在蟒蛇>瓶> restplus方面:REST API File Upload
用python flask_restplus什么是正确的方式有一个帖子,并获得方法来获取和推送文件例如xlsx到服务器?Python restplus API上传和下载文件
是否需要使用marshaling?
参考:https://philsturgeon.uk/api/2016/01/04/http-rest-api-file-uploads/
这个答案给一般信息,但不是在蟒蛇>瓶> restplus方面:REST API File Upload
首先,你需要配置一个解析器
# parsers.py
import werkzeug
from flask_restplus import reqparse
file_upload = reqparse.RequestParser()
file_upload.add_argument('xls_file',
type=werkzeug.datastructures.FileStorage,
location='files',
required=True,
help='XLS file')
然后添加一个新的资源给你的api命名空间
# api.py
import …
import parsers
@api.route('/upload/')
class my_file_upload(Resource):
@api.expect(parsers.file_upload)
def post(self):
args = parsers.file_upload.parse_args()
if args['xls_file'].mimetype == 'application/xls':
destination = os.path.join(current_app.config.get('DATA_FOLDER'), 'medias/')
if not os.path.exists(destination):
os.makedirs(destination)
xls_file = '%s%s' % (destination, 'custom_file_name.xls')
args['xls_file'].save(xls_file)
else:
abort(404)
return {'status': 'Done'}
我希望这有助于。
如果在单个帖子方法中获得多个类型/事件,我的意见不能以此模块样式成功。发送方法(文件上传)是'post',但我从来没有使用过这种方法,因为需要检查文件内容以便写入某处!在大文件上很复杂,需要与目标同步源代码(不能删除或只移动diff)。有时需要在源代码/ html-output上使用额外的修订版,以免丢失任何数据或escape_multiple_io操作。如果使用小尺寸文件,请使用Base64编码的bz2内容。大文件(这很大?(在你的服务器上))在创建/修改过程中遇到很多风险。 – dsgdfg