用于上传和下载文件的Python restplus API

use*_*834 8 python rest upload flask-restplus

使用python flask_restplus有什么方法可以获得帖子并获取方法来获取并将文件(如xlsx)推送到服务器?

是否需要使用编组

参考:https://philsturgeon.uk/api/2016/01/04/http-rest-api-file-uploads/

这个答案给出了一般信息,但没有在python> flask> restplus上下文中:REST API文件上传

k3z*_*k3z 11

首先,您需要配置解析器

# 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')
Run Code Online (Sandbox Code Playgroud)

然后将新资源添加到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'}
Run Code Online (Sandbox Code Playgroud)

我希望这有帮助.