Python requests模块安装及使用教程图解


Posted in Python onJune 30, 2020

requests模块是一个用于访问网络的模块,其实类似的模块还有很多,不在一一在这里解释。这么多的相似的模块为什么都说只有这个好用呢,因为他人性化。如果你学过urllib之类的模块的话,比如urllib,对比一下就很清楚了。

1、requests模块的安装

requests模块的安装非常简单,使用pip install requests命令即可安装,我是在python的Terminal中直接安装的,大家也可以在cmd命令窗口中进行安装。

Python requests模块安装及使用教程图解

2、requests模块的导入

导入requests模块时,直接使用import requests 命令进行导入即可,导入后就可以使用啦。

Python requests模块安装及使用教程图解

3、requests模块的使用

在上面的requests导入中,已经举了一个最简单的requests使用的例子,在实际的接口自动化测试中,我们往往需要传递一些参数,并获取响应的返回结果,下面我们将更详细的讲解requests的使用。

1)requests模块的简单使用

requests提供了如下几种HTTP请求方式:GET、POST、HEAD、OPTIONS、PUT、PATCH、DELETE,我们举几个比较简单的例子,示范代码如下:

Python requests模块安装及使用教程图解

2)requests模块发送请求时传入参数

上面我们介绍了requests中常用的几种请求方式,由于在工作中我们比较常用的是post和get方式进行请求,这里我们只会为大家讲解post和get两种请求方式,其他的内容如果有需要请大家自行补充。

get请求方式传入参数

相信了解过http的小伙伴们都知道,get请求方式的参数一般都是写在url之后,以问号与域名进行分隔,多个参数之间使用&符号进行拼接连接,下面我们为大家举一个简单的例子来进行说明:

Python requests模块安装及使用教程图解

post请求方式传入参数

在前面的学习中我们已经了解到post请求多用于提交数据,提交的数据中可能会包含如密码、身份证号、验证码等私密信息,这些信息如果直接拼接在url中是不安全的,那么post请求是怎样传递参数的呢,post请求传递参数的方式有很多种,这里我们只介绍最常用的三种:

--application/x-www-form-urlencoded,form表单默认的数据格式,提交的数据按照 key1=val1&key2=val2 的方式进行编码,key 和 val 都进行了 URL 转码。大部分服务端语言都对这种方式有很好的支持。比如下面的http请求格式:

Python requests模块安装及使用教程图解

--application/json,现在越来越多的人把它作为请求头,用来告诉服务端消息主体是序列化后的 JSON 字符串。服务端语言也有很多函数去解析JSON,使用JSON可以支持更加复杂的结构化数据。比如下面的http请求格式:

Python requests模块安装及使用教程图解

--multipart/form-data,对用于在表单中上传文件时,也可以上传普通数据,只需要让form的enctype等于multipart/form-data就可以了。比如下面的http请求格式:

Python requests模块安装及使用教程图解

下面我们来详细了解一下使用requests来传递这三种类型的参数:

--以form表单形式发送post请求,具体代码实现如下所示:

Python requests模块安装及使用教程图解

-- 以json格式发送post请求,具体代码实现如下所示:

Python requests模块安装及使用教程图解

--以multipart形式发送post请求,具体代码实现如下所示:

Python requests模块安装及使用教程图解

4、封装一个自己的requests模块

在自动化测试的过程中,我们会对多个接口进行测试,而目前我接触到的几乎所有接口都是返回的json格式的数据,所以封装了一个模块,返回json格式的数据,方便在后面进行调用,现在我把代码粘在下面,有兴趣的小伙伴们可以参考:

Python requests模块安装及使用教程图解

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python动态加载变量示例分享
Feb 17 Python
Python中的对象,方法,类,实例,函数用法分析
Jan 15 Python
Python多线程编程(八):使用Event实现线程间通信
Apr 05 Python
python开发之thread实现布朗运动的方法
Nov 11 Python
python logging 日志轮转文件不删除问题的解决方法
Aug 02 Python
python opencv 图像尺寸变换方法
Apr 02 Python
对Python中TKinter模块中的Label组件实例详解
Jun 14 Python
基于python实现文件加密功能
Jan 06 Python
python新手学习可变和不可变对象
Jun 11 Python
python 爬取百度文库并下载(免费文章限定)
Dec 04 Python
python 自动识别并连接串口的实现
Jan 19 Python
Python进阶学习之带你探寻Python类的鼻祖-元类
May 08 Python
在Tensorflow中实现leakyRelu操作详解(高效)
Jun 30 #Python
TensorFlow-gpu和opencv安装详细教程
Jun 30 #Python
tensorflow 2.1.0 安装与实战教程(CASIA FACE v5)
Jun 30 #Python
python 最简单的实现适配器设计模式的示例
Jun 30 #Python
Tensorflow--取tensorf指定列的操作方式
Jun 30 #Python
解决TensorFlow程序无限制占用GPU的方法
Jun 30 #Python
tensorflow 大于某个值为1,小于为0的实例
Jun 30 #Python
You might like
PHP中全局变量global和$GLOBALS[]的区别分析
2012/08/06 PHP
PHP变量的定义、可变变量、变量引用、销毁方法
2013/12/20 PHP
zend framework框架中url大小写问题解决方法
2014/08/19 PHP
Smarty分页实现方法完整实例
2016/05/11 PHP
Ajax请求PHP后台接口返回信息的实例代码
2018/08/21 PHP
jquery $.ajax入门应用一
2008/11/19 Javascript
asp.net+jquery滚动滚动条加载数据的下拉控件
2010/06/25 Javascript
jquery全选/全不选/反选另一种实现方法(配合原生js)
2013/04/07 Javascript
JS小功能(button选择颜色)简单实例
2013/11/29 Javascript
巧用局部变量提升javascript性能
2014/02/24 Javascript
angular.bind使用心得
2015/10/26 Javascript
JavaScript小技巧整理篇(非常全)
2016/01/26 Javascript
JS获取子窗口中返回的数据实现方法
2016/05/28 Javascript
jQuery实现的粘性滚动导航栏效果实例【附源码下载】
2017/10/19 jQuery
vue forEach循环数组拿到自己想要的数据方法
2018/09/21 Javascript
layui table 获取分页 limit的方法
2019/09/20 Javascript
小程序中设置缓存过期的实现方法
2020/01/14 Javascript
JS前端广告拦截实现原理解析
2020/02/17 Javascript
javascript使用正则表达式实现注册登入校验
2020/09/23 Javascript
[01:11:08]Winstrike vs NB 2018国际邀请赛淘汰赛BO1 8.21
2018/08/22 DOTA
在Django中创建URLconf相关的通用视图的方法
2015/07/20 Python
Python编码爬坑指南(必看)
2016/06/10 Python
在IPython中进行Python程序执行时间的测量方法
2018/11/01 Python
OpenCV+Python--RGB转HSI的实现
2019/11/27 Python
python 申请内存空间,用于创建多维数组的实例
2019/12/02 Python
关于keras中keras.layers.merge的用法说明
2020/05/23 Python
草莓网化妆品澳大利亚站:Strawberrynet AU
2017/12/18 全球购物
优衣库美国官网:UNIQLO美国
2018/04/14 全球购物
座谈会主持词
2014/03/20 职场文书
爱国口号
2014/06/19 职场文书
个人作风纪律整顿整改措施
2014/10/25 职场文书
2014年房地产工作总结范文
2014/11/19 职场文书
学习心理学心得体会
2016/01/22 职场文书
vue项目中的支付功能实现(微信支付和支付宝支付)
2022/02/18 Vue.js
mysql的单列多值存储实例详解
2022/04/05 MySQL
MySQL数据管理操作示例讲解
2022/12/24 MySQL