reuqest-toolbet库生成multipart/form-data格式数据(Python)

背景

   我们的后台可能都会涉及到一些图片呀、视频、语音等资源的上传,Reuqests是不支持的,但是有个第三方库会支持哦,那就是request-toolbet库

  

  •   首先,当然要安装第三方库,安装代码
pip install requests-toolbelt
  • 查看是否安装成功,这个我没有找到比较好的查询方式,直接查看的pip安装的列表
pip list

   

    注意:因为我用的是pycharm,pip安装成功后,在pycharm里面直接导入并不能用 哦,你要在pycharm的库中导入
       file----->other setting ------>preferences for new projects ------>project interpreter页面点击加号进入库检索页面

            

  搜索到对应的库,点击下面的安装就可以啦

       

  • 咳咳,那么我们接着说哈,导入包后,我们构建multipart/form格式数据哈,我们先看一下api,

            主要吸引力是流式多部分表单数据对象MultipartEncoder。其API如下所示:(详细链接:https://toolbelt.readthedocs.io/en/latest/uploading-data.html)

从 request_toolbelt 导入 MultipartEncoder
导入 请求

m  =  MultipartEncoder(
     fields = { 'field0':'value','field1':'value',
             'field2':('filename',open('file.py','rb'),'text / plain')}
    )

r  = 请求。交('http://httpbin.org/post' ,数据=米,
                  标题= { '内容-类型':米。CONTENT_TYPE })

    这里的值的构建有两种情况,一种是数值("field0":"value"),这种情况目前我还用到 我就不讲了哈,另一种是文件('field2':('filename',open('file.py','rb'),'text / plain')),比如图片。如下面这张图就是图片上传需要构造的数据(这篇写的比较全可以参考下:https://www.cnblogs.com/mysticbinary/p/11692909.html

      

from requests_toolbelt import MultipartEncoder

encoder = MultipartEncoder({
            'field': ('file_name', b'{"a": "b"}', 'application/json',
                      {'X-My-Header': 'my-value'})
        })

field:服务端约定的上传文件字段名。一般用到的是file,需要和服务端沟通获取。

file_name: 文件名。一般可以任意写,服务端大多是拿到文件后自己再次命名。

b'{"a":"b"}':文件内容。例:open('/your/file/path', 'rb')

'application/json':文件的MimeType。不同文件类型对应的MimeType可以到这里查询。

{'X-My-Header': 'my-value'}:其他内容,可不传。


例如:
m  =  MultipartEncoder(
     fields = { 
             'file':('1.jpg',open(os.path.join(os.path.dirname(os.path.realpath(__file__)),'image/jpeg')}
    )
完后将m传给方法就可以啦
 rsp = requests.put(url=url,headers=headers,json=m)

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值