python使用requests实现发送带文件请求功能

 更新时间:2022年12月07日 08:43:03   作者:qq_492448446  
这篇文章主要介绍了python使用requests实现发送带文件请求,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

1. requests发送文件功能

Requests 使得上传多部分编码文件变得很简单

url = 'http://httpbin.org/post'
files = {'file': open('D:/APPs.png', 'rb')}
r = requests.post(url, files=files)
print(r.text)

你可以显式地设置文件名,文件类型和请求头:

url = 'http://httpbin.org/post'
files = {'file': ('report.xls', open('report.xls', 'rb'), 'application/vnd.ms-excel', {'Expires': '0'})}
r = requests.post(url, files=files)
print(r.text)

如果你想,你也可以发送作为文件来接收的字符串:

url = 'http://httpbin.org/post'
files = {'file': ('report.csv', 'some,data,to,send\nanother,row,to,send\n')}

r = requests.post(url, files=files)
print(r.text)

如果你发送一个非常大的文件作为 multipart/form-data 请求,你可能希望将请求做成数据流。默认下 requests 不支持, 但有个第三方包 requests-toolbelt 是支持的。你可以阅读 toolbelt 文档 来了解使用方法。

2. requests发送多个文件请求

只要把文件设到一个元组的列表中,其中元组结构为 (form_field_name, file_info)
按照如下格式发送数据

data = {'ts_id': tsid}
files = [('images',('1.png', open('/home/1.png', 'rb'),'image/png')),('images',('2.png', open('/home/2.png', 'rb'),'image/png'))]
r = requests.post(url, data=data, files=files)
print r.text

3. Django 接收文件

附带介绍Django里面如何接收图片文件数据:
读取文件:

from werkzeug.utils import secure_filename
 
def upload_file(request):
    if request.method == 'POST':
        uploaded_files = request.FILES.getlist("images")
        try:
            for file in uploaded_files:
                filename = secure_filename(file.name)
                handle_uploaded_file(os.path.join(ft, filename), file)
        except Exception as e:
            result_json = {"msg": str(e)}
        result = {
            'json': result_json
        }
        return JsonResponse(result, safe=False)

保存文件:

def handle_uploaded_file(filename, f):
    try:
        destination = open(filename, 'wb+')
        for chunk in f.chunks():
            destination.write(chunk)
        destination.close()
    except Exception as e:
        raise Exception('save %s failed: %s' % (filename, str(e)))

requests 官网:http://docs.python-requests.org/zh_CN/latest/user/quickstart.html#post-multipart-encoded

到此这篇关于python使用requests实现发送带文件请求的文章就介绍到这了,更多相关python requests发送文件请求内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • python 常用的异步框架汇总整理

    python 常用的异步框架汇总整理

    自从python3推出关于异步编程的新语法之后,关于异步web框架也是如雨后春笋一般爆发,关于 异步框架的性能也日渐激烈。今天就整理关于 python 的异步框架。
    2021-06-06
  • Python使用sftp实现上传和下载功能

    Python使用sftp实现上传和下载功能

    这篇文章主要为大家详细介绍了Python使用sftp实现上传和下载功能,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-04-04
  • python获取元素在数组中索引号的方法

    python获取元素在数组中索引号的方法

    这篇文章主要介绍了python获取元素在数组中索引号的方法,实例分析了Python中index方法的相关使用技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-07-07
  • Python Selenium操作Cookie的实例方法

    Python Selenium操作Cookie的实例方法

    在本篇文章里小编给大家整理的是一篇关于Python Selenium操作Cookie的实例方法,有需要的朋友们可以学习参考下。
    2021-02-02
  • Django多app路由分发(纯后端)

    Django多app路由分发(纯后端)

    本文主要介绍了Django多app路由分发,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-05-05
  • python如何修改装饰器中参数

    python如何修改装饰器中参数

    这篇文章主要为大家详细介绍了python如何修改装饰器中参数,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-03-03
  • Python进程间通讯与进程池超详细讲解

    Python进程间通讯与进程池超详细讲解

    进程彼此之间互相隔离,要实现进程间通信(IPC),multiprocessing模块主要通过队列方式,队列:队列类似于一条管道,元素先进先出,需要注意的一点是:队列都是在内存中操作,进程退出,队列清空,另外,队列也是一个阻塞的形态
    2022-12-12
  • Python grpc超时机制代码示例

    Python grpc超时机制代码示例

    这篇文章主要介绍了Python grpc超时机制代码示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-09-09
  • Python Pygame实战之趣味篮球游戏的实现

    Python Pygame实战之趣味篮球游戏的实现

    这篇文章主要为大家分享了一个基于Python和Pygame实现的一个趣味篮球游戏,文中的示例代码讲解详细,对我们学习Python有一定帮助,需要的可以参考一下
    2022-04-04
  • Python使用嵌套循环实现图像处理算法

    Python使用嵌套循环实现图像处理算法

    这篇文章主要给大家详细介绍Python如何使用嵌套循环实现图像处理算法,文中有详细的代码示例,具有一定的参考价值,需要的朋友可以参考下
    2023-07-07

最新评论