在Python的网络请求领域,requests库以其简洁的API、强大的功能和人性化的设计,成为了开发者处理HTTP请求的首选工具。无论是简单的接口调用、复杂的会话维持,还是数据格式处理,requests都能轻松应对。本文将系统梳理requests库的核心用法,从高层便捷API到会话级请求,帮你快速掌握网络请求的精髓。
requests库最常用的功能是封装了各类HTTP方法的高层API,这些方法无需手动指定请求类型,底层均通过requests.request()实现,适合快速完成简单请求。
| 方法 | 作用 | 核心参数 |
|---|---|---|
requests.get() | 发送GET请求(用于获取资源) | params(URL查询参数)、**kwargs(其他配置) |
requests.post() | 发送POST请求(用于提交数据) | data(表单数据)、json(JSON数据)、** kwargs |
requests.put() | 发送PUT请求(用于更新资源) | data(更新数据)、**kwargs |
requests.delete() | 发送DELETE请求(用于删除资源) | ** kwargs |
requests.head() | 发送HEAD请求(仅获取响应头) | **kwargs |
requests.options() | 发送OPTIONS请求(获取服务器支持的方法) | ** kwargs |
**kwargs:灵活接收任意关键字参数(如headers、cookies、timeout等),是requests灵活性的核心。requests.get(url, headers={"User-Agent": "Chrome"}, timeout=10)requests 是 Python 中一个流行的第三方库,专门用于发送 HTTP 请求(如 GET、POST、PUT、DELETE 等),并处理服务器返回的响应。它封装了 Python 内置的 urllib 库,提供了更简洁、易用的 API,让开发者可以轻松实现与 Web 服务器的通信。
通俗点来说,requests 是一个 “模拟浏览器” 的工具 —— 你可以用它向指定的 URL 发送请求(带参数、表单、 headers 等),然后获取服务器返回的状态码、响应体(如 JSON、HTML)等数据。
在自动化测试中,requests 主要用于 接口自动化测试,是接口测试的核心工具之一,两者的关系体现在以下几个方面:
现代软件系统(尤其是前后端分离架构)中,接口(API)是模块间、服务间通信的核心。自动化测试需要验证这些接口是否按照预期工作(如返回正确的状态码、数据格式、业务逻辑等)。 requests 可以模拟客户端向接口发送请求(如调用登录接口时发送账号密码,调用查询接口时传递参数),并获取响应结果,从而实现对接口的自动化验证。
在 MySQL 中有六大常见的数据类型(Data Types),即存储数据的不同格式和类别。MySQL 的常用数据类型可归纳为以下六种主要形态(分类),每种形态包含具体的子类型,适用于不同的场景:
用于存储整数(无小数部分的数字),根据取值范围和存储空间分为不同子类型,适合存储计数、ID 等场景。
常用子类型:TINYINT(1 字节,范围 - 128-127 或 0~255)、SMALLINT(2 字节)、MEDIUMINT(3 字节)、INT(4 字节,最常用)、BIGINT(8 字节,适用于大数值如自增 ID)。
用于存储带小数的数字,区分 “近似值” 和 “精确值”。
浮点型(近似值):FLOAT(单精度,4 字节)、DOUBLE(双精度,8 字节),适合存储科学计算等对精度要求不极致的场景(可能有精度误差)。
定点型(精确值):DECIMAL(M,D)(M 为总位数,D 为小数位数),适合存储金额、汇率等需精确计算的场景(无精度损失)。
用于存储文本、字符序列等,根据长度和存储方式分为不同类型。
定长字符串:CHAR(N)(固定长度 N,不足补空格,适合短文本如手机号、密码哈希)。
变长字符串:VARCHAR(N)(长度可变,按实际内容存储,适合长度不固定的文本如用户名、描述)。
长文本 / 二进制:TEXT(长文本,如文章内容)、BLOB(二进制数据,如图片、文件)。
在 MySQL 的字符串类型中,除了存储字符数据的CHAR、VARCHAR、TEXT等,还包含专门用于存储二进制数据的BLOB类型(Binary Large Object)。它们同属字符串类型体系,因为本质上都是存储字节序列,只是BLOB针对二进制数据(无字符集概念),而其他字符串类型针对字符数据(依赖字符集编码)。
字符串类型中的BLOB子类型
BLOB用于存储二进制数据(如图片、音频、视频、文件等字节流),根据存储容量分为以下子类型:
| 类型 | 存储上限 | 适用场景 |
|---|---|---|
| TINYBLOB | 最大 255 字节 | 小图标、缩略图、短二进制数据 |
| BLOB | 最大 65,535 字节(64KB) | 小型图片(如头像)、短文件 |
| MEDIUMBLOB | 最大 16,777,215 字节(16MB) | 中等大小图片、文档(如 PDF) |
| LONGBLOB | 最大 4,294,967,295 字节(4GB) | 大型文件、高清图片、视频片段等 |