python requests转发flask.request里的文件

python requests转发flask.request里的文件

 

# -*- coding: utf-8 -*-
"""
(C) Guangcai Ren 
All rights reserved
create time '2020/8/11 18:08'

Usage:
需求:在flask服务中,需要对 上传文件的api进行转发,如下为 单个文件,多个文件 转发代码

python==3.6
flask==1.1.2
requests==2.24.0

"""
import requests
from flask import request


def get_file(file_name='file'):
    """
    获取单个文件
    :return:
    """
    file_obj = request.files.get(file_name)
    return {'file': (file_obj.filename, file_obj, file_obj.content_type)}


def get_file_list(file_name='file'):
    """
    获取多个文件
    :return:
    """
    file_list = request.files.getlist(f'{file_name}')
    _list = []
    for file_obj in file_list:
        # 不知是否为bug,多文件上传时 总有那么一个文件名结尾添加了 " ,所以去掉
        origin_file_name = file_obj.filename
        if origin_file_name.endswith('"'):
            origin_file_name = origin_file_name[:-1]
        _list.append((file_name, (origin_file_name, file_obj.read(), file_obj.content_type)))
    return _list


if __name__ == '__main__':
    requests.post('http:127.0.0.1:5000/index', files=get_file())
    requests.post('http:127.0.0.1:5000/index', files=get_file_list())

 

你可能感兴趣的:(python,requests,flask,python,files)