【Python Requests 库详解】
目录
- 简介
- 一、安装与导入
- 安装
- 导入
- 二、发送 HTTP 请求
- 1. GET 请求
- 基本请求
- URL 参数
- 2. POST 请求
- 表单数据提交
- JSON 数据提交
- 文件上传
- 3. 其他方法
- PUT 请求示例
- DELETE 请求示例
- 三、处理响应
- 1. 响应内容解析
- 文本内容处理
- 二进制内容处理
- JSON 数据处理
- 2. 响应状态与头信息
- 状态码检查
- 异常处理
- 响应头解析
- 四、高级功能
- 1. 会话(Session)管理
- 2. 代理设置
- 3. 超时控制
- 4. SSL 验证
- 禁用验证(测试环境使用)
- 自定义证书
- 五、异常处理
- 完整异常处理示例
- 六、其他实用功能
- 1. Cookie 操作
- 2. 重定向控制
- 3. 流式下载大文件
- 4. 身份认证
- 七、最佳实践
- 推荐做法
- 特点说明
简介
requests
是 Python 中最流行的 HTTP 客户端库,以简洁的 API 设计和强大的功能著称。以下是其核心知识点的详细说明及代码示例。
一、安装与导入
安装
# 使用 pip 安装 requests 库
pip install requests
导入
# 导入 requests 模块
import requests
二、发送 HTTP 请求
1. GET 请求
基本请求
# 发送一个简单的 GET 请求
response = requests.get("https://api.example.com/data")
print("响应状态码:", response.status_code)
URL 参数
# 通过 params 参数传递 URL 查询参数
params = {"page": 1, # 当前页码"limit": 10, # 每页数据量"sort": "desc" # 排序方式
}
response = requests.get("https://api.example.com/items", params=params)
print("实际请求的 URL:", response.url) # 输出构造后的完整 URL
2. POST 请求
表单数据提交
# 模拟表单提交(Content-Type: application/x-www-form-urlencoded)
form_data = {"username": "admin","password": "secret"
}
response = requests.post("https://api.example.com/login", data=form_data)
print("登录响应:", response.text)
JSON 数据提交
# 发送 JSON 格式数据(Content-Type: application/json)
user_info = {"name": "Alice","age": 25,"email": "alice@example.com"
}
response = requests.post("https://api.example.com/users", json=user_info)
print("创建用户结果:", response.json())
文件上传
# 上传本地文件(Content-Type: multipart/form-data)
with open("report.pdf", "rb") as file: # 以二进制模式打开文件files = {"document": ("report.pdf", file, "application/pdf")}response = requests.post("https://api.example.com/upload", files=files)
print("文件上传结果:", response.json())
3. 其他方法
PUT 请求示例
# 更新资源(例如修改用户信息)
update_data = {"email": "new_email@example.com"}
response = requests.put("https://api.example.com/users/123", json=update_data)
print("更新结果状态码:", response.status_code)
DELETE 请求示例
# 删除资源(例如删除文章)
response = requests.delete("https://api.example.com/articles/456")
print("删除操作状态码:", response.status_code)
三、处理响应
1. 响应内容解析
文本内容处理
# 获取响应文本(自动解码)
response = requests.get("https://api.example.com/text")
print("文本内容:", response.text[:100]) # 截取前 100 个字符
二进制内容处理
# 下载图片并保存到本地
response = requests.get("https://example.com/image.jpg")
with open("image.jpg", "wb") as f: # 以二进制写入模式保存f.write(response.content)
print("图片下载完成")
JSON 数据处理
# 解析 JSON 响应(自动转换为字典)
response = requests.get("https://api.example.com/products/789")
product = response.json()
print(f"产品名称: {product['name']}, 价格: {product['price']}元")
2. 响应状态与头信息
状态码检查
response = requests.get("https://api.example.com/health")
if response.status_code == 200:print("服务正常")
elif response.status_code == 404:print("资源不存在")
else:print("未知状态:", response.status_code)
异常处理
# 自动抛出 HTTP 错误
try:response = requests.get("https://api.example.com/error")response.raise_for_status() # 如果状态码是 4xx/5xx 会抛出异常
except requests.HTTPError as err:print(f"HTTP 错误: {err}")
响应头解析
response = requests.head("https://example.com") # HEAD 请求只获取头信息
print("服务器类型:", response.headers.get("Server", "未知"))
print("内容类型:", response.headers.get("Content-Type", "未指定"))
四、高级功能
1. 会话(Session)管理
# 使用 Session 保持登录状态和连接池
with requests.Session() as session:# 第一次请求:登录login_data = {"user": "admin", "pass": "123456"}session.post("https://api.example.com/login", data=login_data)# 后续请求:自动携带 Cookieprofile = session.get("https://api.example.com/profile").json()orders = session.get("https://api.example.com/orders").json()print("用户信息:", profile)
2. 代理设置
# 通过代理服务器发送请求
proxies = {"http": "http://10.10.1.10:3128", # HTTP 代理"https": "http://10.10.1.10:1080" # HTTPS 代理
}
try:response = requests.get("http://external-site.com", proxies=proxies, timeout=5)print("通过代理访问成功")
except requests.ConnectTimeout:print("代理连接超时")
3. 超时控制
# 设置连接超时和读取超时(元组格式)
try:response = requests.get("https://slow-api.example.com", timeout=(3.05, 10))# 连接超时 3.05 秒,读取超时 10 秒
except requests.Timeout:print("请求超时,请重试")
4. SSL 验证
禁用验证(测试环境使用)
# 注意:verify=False 会忽略 SSL 证书验证(不安全!)
response = requests.get("https://self-signed-cert-site.com", verify=False)
print("跳过 SSL 验证结果:", response.status_code)
自定义证书
# 使用自定义 CA 证书验证
response = requests.get("https://internal-api.example.com", verify="/path/to/corporate-ca-bundle.crt")
print("自定义证书验证成功")
五、异常处理
完整异常处理示例
from requests.exceptions import RequestExceptionurl = "https://unstable-api.example.com/data"try:# 设置超时和重试response = requests.get(url, timeout=5)response.raise_for_status() # 检查 4xx/5xx 错误# 处理成功响应data = response.json()print("获取数据成功:", data["key"])except requests.Timeout:print("错误: 请求超时(5 秒)")
except requests.HTTPError as e:print(f"HTTP 错误: {e.response.status_code} - {e.response.reason}")
except requests.JSONDecodeError:print("错误: 响应不是有效的 JSON")
except RequestException as e:print(f"请求失败: {str(e)}")
六、其他实用功能
1. Cookie 操作
# 手动设置 Cookie
cookies = {"session_id": "abc123xyz"}
response = requests.get("https://api.example.com/cart", cookies=cookies)
print("购物车内容:", response.json())# 获取服务器设置的 Cookie
print("服务器返回的 Cookies:")
for cookie in response.cookies:print(f"{cookie.name}: {cookie.value}")
2. 重定向控制
# 禁用自动重定向
response = requests.get("https://example.com/old-url", allow_redirects=False)
if response.status_code == 301:new_location = response.headers["Location"]print(f"需要手动跳转到: {new_location}")
3. 流式下载大文件
# 分块下载大文件(避免内存溢出)
url = "https://example.com/large-video.mp4"
with requests.get(url, stream=True) as r:r.raise_for_status()with open("video.mp4", "wb") as f:for chunk in r.iter_content(chunk_size=8192): # 8KB 块f.write(chunk)
print("大文件下载完成")
4. 身份认证
# 使用 Basic 认证
from requests.auth import HTTPBasicAuthresponse = requests.get("https://api.example.com/secured",auth=HTTPBasicAuth("user", "pass"))
print("认证结果:", response.status_code)
七、最佳实践
推荐做法
-
会话复用:
# 使用 with 语句自动管理 Session with requests.Session() as s:s.headers.update({"User-Agent": "MyApp/1.0"}) # 统一设置请求头s.get("https://api.example.com/ping") # 测试连接
-
超时必填:
# 所有请求都应该设置超时 requests.get("https://example.com", timeout=(3, 10)) # 连接 3 秒,读取 10 秒
-
资源释放:
# 使用 with 语句确保响应资源释放 with requests.get("https://example.com", stream=True) as response:# 处理响应内容pass
-
错误重试:
# 实现简单重试逻辑 retries = 3 for _ in range(retries):try:response = requests.get(url, timeout=5)response.raise_for_status()breakexcept (RequestException, Timeout):continue
官方文档:https://docs.python-requests.org/
特点说明
- 代码注释:每个示例都添加了详细的注释,说明代码用途和关键参数
- 场景覆盖:包含常见场景(登录、文件传输、错误处理)和特殊需求(代理、SSL 验证)
- 安全提示:在禁用 SSL 验证等危险操作时添加警告说明
- 最佳实践:强调超时设置、会话管理和资源释放的重要性
可直接保存为 .md
文件或导入到文档工具中使用。
相关文章:
【Python Requests 库详解】
目录 简介一、安装与导入安装导入 二、发送 HTTP 请求1. GET 请求基本请求URL 参数 2. POST 请求表单数据提交JSON 数据提交文件上传 3. 其他方法PUT 请求示例DELETE 请求示例 三、处理响应1. 响应内容解析文本内容处理二进制内容处理JSON 数据处理 2. 响应状态与头信息状态码检…...
二维偏序-蓝桥20102,没写完
代码: 暴力:只过了35%,双重for循环o(n^2)1e10; #include <iostream> #include <bits/stdc.h> using namespace std; const int N1e910; typedef long long LL; typedef pair<int,int> PII;int main() {// 请在此输入您的代码//相当于…...
ASEG的鉴定
等位基因特异性表达(Allele-Specific Expression, ASE)基因的鉴定是研究杂种优势和基因表达调控的重要手段。以下是鉴定ASE基因的详细流程和方法: ### **1. 实验设计与样本准备** - **选择材料**:选择杂交种及其亲本作为研究材料。例如,玉米中的B73和Mo17及其杂交组合B73…...
从零开始:在 GrapesJS Style Manager 中新增 row-gap 和 column-gap
在前端开发中,页面样式的灵活性和可扩展性至关重要。GrapesJS 作为一个强大的网页构建工具,其内置的 Style Manager 提供了常见的 CSS 样式的可视化设置,极大地方便了开发者和设计师。然而,随着项目需求的不断变化,有些…...
解决双系统ubuntu24.04开机出现花屏等情况
1. 问题描述: 刚刚装上的双系统ubuntu24.04开机就出现花屏情况 2. 解决方案 安装显卡驱动 查看显卡型号 查看显卡硬件支持的驱动类型 ubuntu-drivers devices如果输入没有反映,请更新软件源,或者换官方软件源 sudo add-apt-repository…...
基于SpringBoot的智慧社区管理系统(源码+数据库)
499基于SpringBoot的智慧社区管理系统,系统包含三种角色:管理员、用户主要功能如下。 【用户功能】 1. 首页:查看系统。 2. 超市商品:浏览超市中各类商品信息。 3. 动物信息:了解社区内的动物种类和相关信息。 4. 车位…...
通俗理解CLIP模型如何实现图搜图乃至文搜图
一、图搜图与文搜图 图搜图和文搜图的场景相信大家并不少见,比如度娘的搜索框就可以直接上传图片找到相似的图片,还有某宝某团都有这种上传图片匹配到相似商品或者商品页的推荐的功能。那比如我想搜一张“正在跳舞的狗”的图片,是不是就能搜…...
谷歌最近放出大招——推出全新“Agent Development Kit(简称ADK)
每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗?订阅我们的简报,深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同,从行业内部的深度分析和实用指南中受益。不要错过这个机会,成为AI领…...
std::string` 类
以下是对 std::string 类中 修改操作 和 字符串操作 的示例代码,帮助你更好地理解这些函数的使用: 5. 修改操作 (1) operator 用于追加字符串、C 风格字符串或字符。 #include <iostream> #include <string>int main() {std::string str …...
Sping Cloud配置和注册中心
1.Nacos实现原理了解吗? Nacos是注册中心,主要是帮助我们管理服务列表。Nacos的实现原理大概可以从下面三个方面来讲: 服务注册与发现:当一个服务实例启动时,它会向Nacos Server发送注册请求,将自己的信息…...
Java基础 - 泛型(常见用法)
文章目录 泛型类泛型方法泛型类派生子类示例 1:子类固定父类泛型类型(StringBox 继承自 Box<String>)示例 2:子类保留父类泛型类型(AdvancedBox<T> 继承自 Box<T>)示例 3:添加子类自己的…...
待排序元素规模较小时,宜选取哪种排序算法效率最高
当待排序元素规模较小时,通常选择以下几种简单高效的排序算法,因为它们在小规模数据下具有更低的常数开销和良好的局部性表现: ✅ 插入排序(Insertion Sort) 推荐理由:在数据量小、数据部分有序的情况下&a…...
SAQ评级是什么,SAQ评级的意义?对企业发展好处
SAQ评级(Supplier Audit Questionnaire,供应商审计问卷评级)是供应链管理中常见的一种评估机制,主要用于对供应商的质量、合规性、风险管理能力等进行标准化审核和分级。它常见于汽车、电子、医药等对供应链要求严格的行业&#x…...
嵌入式---电机分类
一、按电流类型分类(最基础分类) 1. 直流电机(DC Motor) 工作原理:通过换向器(有刷)或电子换向(无刷)将直流电源转换为交变磁场,驱动转子旋转。 核心特点&a…...
定制一款国密浏览器(5):修改浏览器名称
在上一章中,我介绍了如何修改浏览器的 logo,这一章介绍修改浏览器的名称。 浏览器的名称是 AI 帮我想的,英文名 Mojo Browser,中文名墨舟浏览器。 第一步先修改 desktop 文件,desktop 文件支持多语言化,遵循 Freedesktop.org 制定的 Desktop Entry Specification 规范。…...
水库大坝安全监测系统
水库大坝安全监测系统是现代水利管理中至关重要的组成部分,是一种用于实时监控和评估大坝结构安全状况的技术系统,通过多种技术手段实现对水库大坝的全方位、全天候监测,旨在确保大坝的稳定性和安全性,预防潜在风险。 系统构成 …...
文件IO5(JPEG图像原理与应用)
JPEG图像原理与应用 ⦁ 基本概念 JPEG(Joint Photographic Experts Group)指的是联合图像专家组,是国际标准化组织ISO制订并于1992年发布的一种面向连续色调静止图像的压缩编码标准,所以也被称为JPEG标准。 同样,JP…...
开源Cursor替代品——Void
我原先写过很多关于Cursor文章。 今天分享一个开源的 Cursor 替代方案。 如果你也热爱开源项目,那么这篇文章正是为你准备的! 寻找开源替代的原因 我一直在思考:市面上这类产品层出不穷,但真正的核心技术似乎都依赖于大语言模型(LLM)。于是萌生了一个想法——何不自己…...
DAOS系统架构-组件
如上图所示,一个完整的DAOS系统是由管理节点组件、客户端节点组件、服务端节点组件以及网络通信组件四个部分组成。管理节点组件通过管理网络通道(蓝色)对DAOS服务管理和监控。客户端节点组件通过数据网络通道(红色)与…...
论文精读:MSCA-Net:多尺度上下文聚合网络在红外小目标检测中的突破
论文地址:https://arxiv.org/pdf/2503.17193 目录 一、论文结构解析 二、三大创新点详解 1. 多尺度增强检测注意力(MSEDA) 2. 位置卷积块注意力模块(PCBAM) 3. 通道聚合模块(CAB) 三、实验结果对比 定量分析(表I关键数据) 定性对比 四、应用场景展望 五、总…...
LangGraph 使用指南
安装配置 安装依赖 LangGraph 可以通过 pip 安装: pip install langgraph如果您想使用最新的功能和改进,可以从源代码安装: pip install githttps://github.com/langchain-ai/langgraph.git环境配置 LangGraph 与 LangChain 共享许多配置…...
C++指针(四)万字图文详解!
个人主页:PingdiGuo_guo 收录专栏:C干货专栏 前言 相关文章:C指针(一)、C指针(二)、C指针(三) 本篇博客是介绍函数指针、函数指针数组、回调函数、指针函数的。 点赞破六…...
【AI提示词】长期主义助手提供规划支持
提示说明 长期主义是一种关注长期利益和持续学习的思维模式,帮助个人和组织在快速变化的环境中保持耐心和系统性思考。 提示词 # Role: Long-termist Assistant## Profile - language: 中文 - description: 长期主义是一种关注长期利益和持续学习的思维模式&…...
JavaScript逆向工程:如何判断对称加密与非对称加密
在现代Web应用安全分析中,加密算法的识别是JavaScript逆向工程的关键环节。本文将详细介绍如何在逆向工程中判断JavaScript代码使用的是对称加密还是非对称加密。 一、加密算法基础概念 1. 对称加密 (Symmetric Encryption) 特点:加密和解密使用相同的…...
制造企业如何通过实现数据统一?
随着生产规模的扩大、供应链的复杂化以及市场需求的快速变化,企业内部的数据管理问题日益凸显。数据孤岛、数据冗余、数据不一致等问题不仅降低了运营效率,还可能导致决策失误。那么,制造企业如何才能打破这些壁垒,实现数据的统一…...
ICRA-2025 | 视觉预测助力机器人自主导航!NavigateDiff:视觉引导的零样本导航助理
论文:Yiran Qin 1 , 2 ^{1,2} 1,2, Ao Sun 2 ^{2} 2, Yuze Hong 2 ^{2} 2, Benyou Wang 2 ^{2} 2, Ruimao Zhang 1 ^{1} 1单位: 1 ^{1} 1中山大学, 2 ^{2} 2香港中文大学深圳校区论文标题:NavigateDiff: Visual Predictors are Ze…...
Java 与 LibreOffice 集成开发指南
1. 引言 Java 与 LibreOffice 的集成开发为开发者提供了一种强大的工具,用于实现文档自动化处理、文档转换、内容编辑等任务。通过 Java 调用 LibreOffice 提供的 API,可以实现跨平台的文档处理功能,满足各种业务需求。本文将详细介绍如何使…...
如果单表数据量大,只能考虑分库分表吗
程序员最怕啥?不是需求改八遍,也不是半夜报警电话,而是数据库突然卡成PPT!尤其是当单表数据冲到几千万行,查询慢得像老牛拉车,这时候团队第一反应往往是:“赶紧分库分表!” 但兄弟,分库分表可不是什么温柔小姐姐,它更像是个浑身带刺的仙人掌——你以为抱上就能解决问…...
3.3.1 spdlog异步日志
文章目录 3.3.1 spdlog异步日志1. spdlog1. 日志作用2 .同步日志和异步日志区别 2. spdlog是什么下载命令:2. spdlog为什么高效3. spdlog特征5. spdlog输出控制6. 处理流程7. 文件io8.问题 2. 如何创建logger3. 如何创建sink4. 如何自定义格式化5. 如何创建异步日志…...
【Web功能测试】注册与登录功能测试用例设计深度解析
1 注册功能测试用例设计 1.1 明确需求与测试范围 必填字段:手机号、验证码、密码 手机号规则:11位手机号 密码规则:6-16位,需包含大小写字母必须同时存在,数字或符号存在其一 协议勾选 提交后跳转登录页或显示成功…...
netstat 查看端口占用、杀死进程
文章目录 查看端口占用强制杀死 报错信息使用 lsof 查看端口占用 netstat -tanlp强制杀死 在安全的情况下,用下面命令杀死端口占用的进程 sudo kill $(sudo lsof -t -i:3128)报错信息 部署程序时,会出现这样的报错: Error response from…...
Windows 11 PowerShell重定向文本文件的编码问题
目录 问题的由来 编码导致的问题 解决办法 VSCode进行转换 记事本进行转换 直接指定输出的文本编码 总结 问题的由来 在我的嵌入式系统的课程中有一个裸机开发的实验,其中需要把图片等文件转换为C语言数组保存在程序中。课程中,我推荐了CodePlea的…...
蓝桥杯冲刺:一维差分
系列文章目录 蓝桥杯系列:一维差分 文章目录 系列文章目录前言一、一维差分: 差分数组的意义: 二、差分的性质: 差分和前缀和的关系 三、一维差分代码实现:四、典型真题(利用一维差分来实现) 这…...
理解企业内部信息集成
目录 1. 技术平台集成 2. 数据集成 3. 应用集成 4. 业务过程集成 5. 应用集成与企业内部信息集成的区别 企业内部信息集成是将分散的技术、数据、应用和业务流程整合为一个协同的整体,以提高效率、减少冗余和增强决策能力。 企业内部信息集成一般可以分为4个方…...
论文学习:《利用图注意力网络增强单细胞多组学数据的整合》
原文标题:Enhanced Integration ofSingle-Cell Multi-Omics Data Using Graph Attention Networks 原文链接:https://pubs.acs.org/doi/abs/10.1021/acssynbio.4c00864 跨不同组学层的数据集成面临的挑战:高维度、异质性和稀疏性。 变分自编码…...
HumanDil-Ox-LDL:保存:2-8℃保存,避免强光直射,不可冻存
化学试剂的基本介绍: /// 英文名称:HumanDil-Oxidized LowDensityLipoprotein /// 中文名称:人源红色荧光标记氧化型低密度脂蛋白 /// 浓度:1.0-4.0 mg/ml /// 外观:乳状液体 /// 缓冲液组分:PBS&…...
基于3d相机的点云物体检测与路径规划
🧩 代码结构和解释: 点云预处理 (preprocess_point_cloud): 使用 Voxel 下采样 来减少点云数据量,去除不必要的噪声。 使用 统计滤波器 去除离群点,以提高后续拟合的精度。 V型焊缝路径拟合 (fit_weld_path_v)&…...
日语学习-日语知识点小记-构建基础-JLPT-N4阶段(2):んです
日语学习-日语知识点小记-构建基础-JLPT-N4阶段(2):んです 1、前言(1)情况说明(2)工程师的信仰2、知识点(1)~んです & ~の(2)意味(いみ)&形(かたち)&使い方(つかいかた)(3)そうなんですか & そうなんだ。(4)何をしているんですか & 何を…...
yolov8在windows系统的C++版本的onnxruntime部署方法
1.各个软件的的环境需要保持在统一的版本。 onnxruntime需要和cuda的版本对应上,版本号:onnxruntime-win-x64-gpu-1.18.1 ,链接: NVIDIA - CUDA | onnxruntime cuda:本机显卡支持的版本,cuda11.7,链接:CUDA Toolkit Archive | NVIDIA Developer cudnn:需要对应到cud…...
AD软件的系统设置
设置 1.自动保存(DATA -> backup) 2.原理图-复制元器件递增位号 3.原理图-用斜线表示负信号 4.PCB-选择移动重叠的元器件 5.PCB-十字光标全屏大小 6.PCB-选择部分连接网络的走线全亮/显示多个网络的颜色(TP) 7.PCB-DRC报错的图…...
算法---子序列[动态规划解决](最长递增子序列)
最长递增子序列 说白了,要用到双层循环! 用双层循环中的dp[i] class Solution { public:int lengthOfLIS(vector<int>& nums) {vector<int> dp(nums.size(),1);for(int i 0;i<nums.size();i){for(int j0;j<i;j){if(nums[i]>num…...
快速幂(模板)
快速幂 取余运算性质:(a*b*c)%d (a%d * b%d * c%d)%d ; #include <iostream> using namespace std; int main() {long long b,p,k;//b(底数)p(指数)k(取模数)cin>>b>>p>>k;long long ret1;b%k;//防止底数过大//模版,记…...
蓝桥杯 好数【暴力、基础知识】
题目: AC代码: #include<bits/stdc.h> using namespace std; int ans0; int n; bool check(int x){int cnt1;while(x!0){int tx%10;if(cnt%21){ if(t%20) return false; //奇数位置是偶数} if(cnt%20){if(t%21) return false; //偶数位是奇数}cnt…...
【Kubernetes】Kubernetes中如何实现灰度发布
Kubernetes中实现灰度发布 一、基于Ingress-nginx的流量切分(适用中小规模) 权重分流 在Ingress资源中通过nginx.ingress.kubernetes.io/canary-weight注解设置新版本流量比例apiVersion: networking.k8s.io/v1 kind: Ingress metadata:annotations:ng…...
【Reinforcement Learning For Quadruped Control】1
强化学习(RL)是一种机器学习范式,代理通过与环境的互动来学习做出决策。强化学习的核心概念围绕以下几个方面展开:a) 代理agent,做出决策;b) 环境environment,响应代理的决策;c) 状态…...
工程企业如何实现四算联动?预算-核算-决算系统解析
在工程行业,项目管理的高效性直接决定了企业的盈利能力和市场竞争力。尤其是在EPC(工程总承包)模式下,工程企业面临着复杂的业务场景和多维度的成本管控需求。如何通过“四算联动”(概算、预算、核算、决算)…...
【SpringBoot】处理actuator风险漏洞
最近给系统做渗透测试,扫描出了一个actuator风险漏洞,属于高危级别,通过actuator接口可以拿到用户敏感信息。这个问题处理起来倒也简单,禁用actuator或者限制访问就可以了 # 禁用actuator接口配置 management:server:port: -1# 限…...
MACOS15版本安装 python mysqlclient 以连接mysql 8.0
MACOS14/15 版本安装 python mysqlclient 以连接mysql 8.0 主要用于macos django4 mysql8.0 开发项目 准备材料 macos > 13.0 python > 3.10.0 (不强制) mysql > 8.0 安装步骤 安装 brew 使用国内源安装brew /bin/zsh -c "$(curl -f…...
KV Cache大模型推理加速功能
KV Cache KV Cache是大模型标配的推理加速功能,也是推理过程中,显存资源巨大开销的元凶之一。在模型推理时,KV Cache在显存占用量可达30%以上。 目前大部分针对KV Cache的优化工作,主要集中在工程上。比如著名的VLLM,…...
Windows下安装WSL2下的Ubuntu、docker容器的IP地址(上)
既然容器支持多个应用,那么容易想到应该有对应的ip地址和端口,这样才能和Ubuntu主机进行通讯,ubuntu访问外网也应该有ip能连接到外网才行,要搞清楚这些ip地址的关系才行。 前面两篇文章中说了怎么实现windows和wsl2下的ubuntu的文…...