当前位置: 首页 > news >正文

Postman接口测试: postman设置接口关联,实现参数化

🍅 点击文末小卡片,免费获取软件测试全套资料,资料在手,涨薪更快    

postman设置接口关联

在实际的接口测试中,后一个接口经常需要用到前一个接口返回的结果, 从而让后一个接口能正常执行,这个过程的实现称为关联。

在postman中实现关联操作的步骤如下:

1、利用postman获取上一个接口指定的返回值,可以在tests中提取响应中的字典做全局变量;如下图

2、编写代码设置全局变量,会自动把全局变量的信息加入到Environments中的Globals中,如下图

使用postman全局变量保存上一个接口的值,代码如下:

老版本写法:postman.setGlobalVariable("全局变量名", str); 其中前面的参数为全局变量名称 ,后面为变量

新版本写法:pm.globals.set("token_id", token_value);其中前面的参数为全局变量名称 ,后面为变量

3、和之前引用全局变量一样,使用{{全局变量名}}即可;如下图

同时,我也为大家准备了一份软件测试视频教程(含面试、接口、自动化、性能测试等),就在下方,需要的可以直接去观看,也可以直接点击文末小卡片免费领取资料文档

软件测试视频教程观看处:

Postman接口测试保姆级教程及接口自动化测试项目实战教程你要的都在这

postman实现参数化

什么时候会用到参数化

比如:一个模块要用多组不同数据进行测试  == 验证业务的正确性

Login模块:正确的用户名,密码 ===成功;错误的用户名,正确的密码 === 失败

postman实现参数化

在实际的接口测试中,部分参数每次发送请求时都要唯一(比如注册), 这时可采用postman把测试数据进行参数化处理

postman设置参数的形式主要有三种:

  • 内建变量实现
  • Pre-request Script页签中使用代码实现 (推荐)
  • 外部文件的方式实现;如csv文件/json格式文件
一、内建变量实现

Postman有以下三种内建变量,适合一次性使用;缺点:内键变量不能做精确对比

{{$guid}}:生成GUID;如下图:

{{$timestamp}}:当前时间戳;如下图

可通过在线时间戳转换工具查看时间:https://tool.lu/timestamp/

{{$randomInt}}:0-1000的随机整数

二、Pre-request Script页签中使用代码实现(推荐)

Pre-request Script为执行接口请求之前要做的操作,而tests是执行完请求要 做的操作。内建变量一般放在Request里,我们也可以用代码在Pre-request Script中实现,用代码实现的好处是可以复用。

Pre-request Script 与test 一样 支持javascript语法

在Pre-request Script中实现的几种参数化;如下

//获取当前时间戳 毫秒
var now_time = Date.now()
pm.globals.set("now_time",now_time)//guid实现
const guid = 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'
.replace(/x/g, () => (Math.floor(Math.random() * 16)).toString(16))
.replace(/y/g, () => (Math.floor(Math.random() * 4 + 8)).toString(16));
pm.globals.set("guid_value",guid)//随机整数实现
const randomInt = (min, max) => Math.floor(Math.random() * (max - min + 1)) + 
min
pm.globals.set("randomInt_num",randomInt(8,15))//从多个选项中选择实现
const randomInt = (min, max) => Math.floor(Math.random() * (max - min + 1)) + 
min
const getRandomValue = list => list[randomInt(0, list.length - 1)];
const charsInName = ['王','李','张']
pm.globals.set("people_name",getRandomValue(charsInName))//随机手机号实现
const randomInt = (min, max) => Math.floor(Math.random() * (max - min + 1)) + 
min
var mobile_num = `18${randomInt(100000000, 999999999)}`;
pm.globals.set("mobile_num",mobile_num)//同步等待实现:等待5秒后开始执行
const sleep = (milliseconds) => {
const start = Date.now();
while (Date.now() <= start + milliseconds) {}
}
sleep(5000)

实战示例:通过Pre-request Script编写代码可以在随机参数中做断言的精确比对

1、在Pre-request Script中编写代码

2、在请求中引用变量;{{变量名}}

3、在tests中做断言,验证实际结果和预期结果是否一致

4、查看执行结果

三、外部文件方式实现参数化

在postman中,除了上述两种方法实现参数化,还可以利用外部数据文件 (支持csv文件和包含json格式文本的数据)。外部数据文件目前是通过Runner 页签可以进行导入。

csv文件格式举例:

csv文件要在Collection Runner中工作,第一行必须是在request中要使用的 变量名,每一行是一条用例,并表示一次迭代。

1、先准备csv文件,编码是UTF-8;如上图

2、在postman中引用变量名,如下图中的百度搜索中wd的参数引入了{{search_word}},tests页签中做断言引用了data.expected_result

3、点击Runner按钮,勾选需执行的请求,在设置循环次数,导入csv文件,点击run执行;如下图

4、查看执行结果

json文件你需要确保你的文件有键/值对数组。数组中的每个元素是键值对对 象,代表一次迭代。key作为request中要使用的变量名,value作为key的取值。

json文件实现参数化步骤:

1、准备要使用的json格式测试数据文件;

2、在postman脚本中,HTTP requests中使用{{ key }}去引用,在script中使用 data. key 或者 data[“key”] 去引用;

3、打开Runner窗口,点击Data旁边的Select File按钮,导入jsondata参数化文件; 点击Data File Type类型选择application/json后,点击Preview按钮,检查数据正确

4、查看执行结果

Postman本篇总结

最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

这些资料,对于做【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!凡事要趁早,特别是技术行业,一定要提升技术功底。

相关文章:

Postman接口测试: postman设置接口关联,实现参数化

&#x1f345; 点击文末小卡片&#xff0c;免费获取软件测试全套资料&#xff0c;资料在手&#xff0c;涨薪更快 postman设置接口关联 在实际的接口测试中&#xff0c;后一个接口经常需要用到前一个接口返回的结果&#xff0c; 从而让后一个接口能正常执行&#xff0c;这个…...

docker打开滚动日志

在 Docker 中启用滚动日志&#xff08;log rotation&#xff09;可以帮助你管理容器日志的大小&#xff0c;避免日志文件占用过多磁盘空间。以下是具体的操作步骤&#xff1a; 1. 修改 Docker 守护进程配置 Docker 的日志配置是通过 daemon.json 文件管理的。你需要修改此文件…...

单片机-89C51部分:5、点亮LED

飞书文档https://x509p6c8to.feishu.cn/wiki/SlB5wYD1QiPRzWkfijEcIvv8nyc 一、应用场景 二、点灯原理 插件led灯珠长引脚为正极,短引脚为负极。 LED&#xff08;发光二极管&#xff09;两端存在电压差&#xff0c;有一定的电流流过时会亮起。电流可以理解为水流&#xff0c;…...

Lua 第10部分 模式匹配

10.1 模式匹配的相关函数 字符串标准库提供了基于模式的 4 个函数。 我们已经初步了解过函数 find 和 gsub&#xff0c;其余两个函数分别是 match 和 gmatch (Global Match 的缩写&#xff09;。 函数 string.find 用于在指定的目标字符串中搜索指定的模式。最简单的模式就是一…...

Maven 4.0.0 模式-pom.xml配置详解

Maven 4.0.0 模式-pom.xml配置详解 ​ 此 pom.xml 文件涵盖了 Maven 4.0.0 模式支持的所有主要标签&#xff0c;包括项目元数据、依赖管理、构建配置、发布管理等。每个标签都配有详细注释&#xff0c;说明其作用、常见用法和可能的值。 ​ 此文件旨在展示标签的完整性&#…...

IDEA 连接 Oracle 数据库

IDEA 连接 Oracle 数据库...

机器人快速启动

机器人快速启动 ES机器人开机操作流程 方法一&#xff08;一体化底座启动&#xff09; 接通48V电源点击底座“Power”按钮观察电源指示灯亮起&#xff0c;蜂鸣器发出“嘀”声&#xff0c;代表底座启动完成 方法二&#xff08;控制手柄启动&#xff09; 长按手柄开关机键2秒后松…...

使用 MediaPipe 和 OpenCV 快速生成人脸掩膜(Face Mask)

在实际项目中&#xff0c;尤其是涉及人脸识别、换脸、图像修复等任务时&#xff0c;我们经常需要生成人脸区域的掩膜&#xff08;mask&#xff09;。这篇文章分享一个简单易用的小工具&#xff0c;利用 MediaPipe 和 OpenCV&#xff0c;快速提取人脸轮廓并生成二值掩膜图像。 …...

《全球反空间能力》报告翻译——部分1

全球反空间能力 已进行过破坏性反卫星测试的国家 美国 美国目前拥有世界上最先进的军事太空能力&#xff0c;尽管与中国的相对差距正在缩小。在冷战期间&#xff0c;美国开创了许多现今使用的国家安全太空应用&#xff0c;并在几乎所有类别中保持技术领先地位。美国军方在将…...

云原生课程-Docker

一次镜像&#xff0c;到处运行。 1. Docker详解&#xff1a; 1.1 Docker简介&#xff1a; Docker是一个开源的容器化平台&#xff0c;可以帮助开发者将应用程序和其依赖的环境打包成一个可移植的&#xff0c;可部署的容器。 docker daemon:是一个运行在宿主机&#xff08;DO…...

组件的基本知识

组件 组件的基本知识 组件概念组成步骤好处全局注册生命周期scoped原理 父子通信步骤子传父 概念 就是将要复用的标签&#xff0c;抽离放在一个独立的vue文件中&#xff0c;以供主vue文件使用 组成 三部分构成 template&#xff1a;HTML 结构 script: JS 逻辑 style: CSS 样…...

空间矩阵的思考

今天又看了些线性代数&#xff0c;引发了许多思考。   矩阵是以长和宽存储数据&#xff0c;那有没有一种新型的矩阵&#xff0c;以长宽高的形式存储数据呢&#xff1f;我不知道有没有&#xff0c;所以暂且称其为空间矩阵。   它肯定是存在的&#xff0c;可以这样抽象&#…...

【数据挖掘】时间序列预测-常用序列预测模型

常用序列预测模型 &#xff08;1&#xff09;AR&#xff08;自回归&#xff09;模型&#xff08;2&#xff09;ARIMA模型&#xff08;3&#xff09;Prophet模型&#xff08;4&#xff09;LSTM模型&#xff08;5&#xff09;Transformer模型&#xff08;6&#xff09;模型评估6.…...

将你的本地项目发布到 GitHub (新手指南)

目录 第 1 步&#xff1a;在 GitHub 上创建新的仓库 (Repository)第 2 步&#xff1a;将本地仓库连接到 GitHub 远程仓库第 3 步&#xff1a;(可能需要) 重命名你的默认分支第 4 步&#xff1a;将本地代码推送到 GitHub第 5 步&#xff1a;在 GitHub 上检查结果后续工作流程 你…...

[论文梳理] 足式机器人规划控制流程 - 接触碰撞的控制 - 模型误差 - 自动驾驶车的安全合规(4个课堂讨论问题)

目录 问题 1&#xff1a;足式机器人运动规划 & 控制的典型流程 (pipline) 1.1 问题 1.2 目标 1.3 典型流程&#xff08;Pipeline&#xff09; 1.3.1 环境感知&#xff08;Perception&#xff09; 1.3.2 高层规划&#xff08;High-Level Planning&#xff09; 1.3.3 …...

初中级前端面试全攻略:自我介绍模板、项目讲解套路与常见问答

为了给面试官留下专业而亲切的第一印象&#xff0c;自我介绍要突出与岗位相关的技能和项目经验&#xff0c;同时以自己擅长的领域开放式结尾​。通常可以按照以下思路组织自我介绍内容&#xff1a;首先简单介绍个人信息和工作年限&#xff0c;然后列出精通的前端技术栈&#xf…...

Android开发中svg转xml工具使用

要使用 svg2vector-cli 工具通过命令行将 SVG 文件转换为 Android 可用的 XML 矢量图标文件&#xff0c;可以单个文件转换或者整个文件夹批量转换&#xff0c;以下是详细的步骤和说明&#xff1a; 1. 准备工作 1.1 下载工具 首先需要下载 svg2vector-cli-1.0.0.jar 或更高版本…...

爬虫技术入门:基本原理、数据抓取与动态页面处理

引言 在当今数据驱动的时代&#xff0c;网络爬虫技术已成为获取和分析互联网数据的重要手段。无论是搜索引擎的网页收录、竞品数据分析&#xff0c;还是学术研究的语料收集&#xff0c;爬虫技术都发挥着关键作用。本文将深入浅出地讲解爬虫的基本原理&#xff0c;分析它能获取…...

AI预测3D新模型百十个定位预测+胆码预测+去和尾2025年4月27日第65弹

从今天开始&#xff0c;咱们还是暂时基于旧的模型进行预测&#xff0c;好了&#xff0c;废话不多说&#xff0c;按照老办法&#xff0c;重点8-9码定位&#xff0c;配合三胆下1或下2&#xff0c;杀1-2个和尾&#xff0c;再杀6-8个和值&#xff0c;可以做到100-300注左右。 (1)定…...

服务器数据备份,服务器怎么备份数据呢?

企业数据量呈指数级增长&#xff0c;服务器数据备份已成为保障业务连续性、抵御勒索攻击与合规审查的核心技术环节。当前&#xff0c;服务器数据备份方案需兼顾数据完整性、恢复时效性、存储经济性三大核心诉求&#xff0c;其实现路径可根据技术架构、数据规模及容灾等级划分为…...

语音识别质量的跟踪

背景 这个项目是用来生成结构化的电子病历的。数据的来源是医生的录音。中间有一大堆的处理&#xff0c;语音识别&#xff0c;关键字匹配&#xff0c;结构化处理&#xff0c;病历编辑......。最多的时候给上百家医院服务。 语音识别质量的跟踪 一、0225医院的训练后的情况分…...

【数据挖掘】时间序列预测-时间序列的平稳性

时间序列的平稳性 &#xff08;1&#xff09;平稳性定义&#xff08;2&#xff09;平稳性处理方法2.1 差分法2.2 季节调整&#xff08;Seasonal Adjustment&#xff09;2.3 趋势移除&#xff08;Detrending&#xff09;2.4 对数转换&#xff08;Logarithmic Transformation&…...

成都蒲江石象湖旅游攻略之石象湖郁金香最佳观赏时间

石象湖坐落于成都蒲江&#xff0c;拥有绝美的郁金香花海&#xff0c;吸引了很多的游客。如果大家想要观赏比较诱惑人的郁金香&#xff0c;那自然就应该知道正确的观赏时间。 心想郁金香合适的时间是每年的3月份到3月底。石象湖会还会举办盛大的郁金香节&#xff0c;在花园内有数…...

大模型、知识图谱和强化学习三者的结合,可以形成哪些研究方向?

大模型(Large Language Models, LLMs)、知识图谱(Knowledge Graph, KG)与强化学习(Reinforcement Learning, RL)作为人工智能领域的三大核心技术,其融合正推动着认知智能迈向新高度。本文结合2023-2025年的最新研究成果,系统梳理三者结合的七大科研方向及其技术路径。 …...

Linux文件操作

在C语言中&#xff0c;我们已经学习了文件相关的知识&#xff0c;那么在Linux中我们为什么还要再来学习文件呢&#xff1f;这是因为C语言中和Linux中&#xff0c;"文件"是2个不同的概念。所以我们要来学习Linux中对文件的操作。 在学习之前&#xff0c;我们先来回顾一…...

PostSwigger Web 安全学习:CSRF漏洞3

CSRF 漏洞学习网站&#xff1a;What is CSRF (Cross-site request forgery)? Tutorial & Examples | Web Security Academy CSRF Token 基本原理 CSRF Token 是服务端生成的唯一、随机且不可预测的字符串&#xff0c;用于验证客户端合法校验。 作用&#xff1a;防止攻击…...

【Node.js 】在Windows 下搭建适配 DPlayer 的轻量(简陋)级弹幕后端服务

一、引言 DPlayer官网&#xff1a;DPlayer 官方弹幕后端服务&#xff1a;DPlayer-node MoePlayer/DPlayer-node&#xff1a;使用 Docker for DPlayer Node.js 后端&#xff08;https://github.com/DIYgod/DPlayer&#xff09; 本来想直接使用官网提供的DPlayer-node直接搭建…...

淘宝tb.cn短链接生成

淘宝短链接简介 1. 一键在线生成淘宝短链接tb.cn,m.tb.cn等 2. 支持淘宝优惠券短链接等淘宝系的所有网址 3. 生成的淘宝短链接是官方的&#xff0c;安全稳定有保证 4.适合多种场景下使用&#xff0c;如&#xff1a;网站推广&#xff0c;短信推广 量大提供api接口&#xff0…...

在web应用后端接入内容审核——以腾讯云音频审核为例(Go语言示例)

腾讯云对象存储数据万象&#xff08;Cloud Infinite&#xff0c;CI&#xff09;为用户提供图片、视频、语音、文本等文件的内容安全智能审核服务&#xff0c;帮助用户有效识别涉黄、违法违规和广告审核&#xff0c;规避运营风险。本文以音频审核为例给出go语言示例代码与相应结…...

优化无头浏览器流量:使用Puppeteer进行高效数据抓取的成本降低策略

概述 使用 Puppeteer 进行数据抓取时&#xff0c;流量消耗是一个重要考虑因素。特别是在使用代理服务时&#xff0c;流量成本可能显著增加。为了优化流量使用&#xff0c;我们可以采用以下策略&#xff1a; 资源拦截&#xff1a;通过拦截不必要的资源请求来减少流量消耗。请求…...

【C语言】fprintf与perror对比,两种报错提示的方法

它们的主要区别在于 信息来源 和 自动包含的系统错误详情。 1. fprintf(stderr, "自定义错误信息\n"); 功能: 这是标准库中的一个通用格式化输出函数。你可以用它向任何文件流&#xff08;包括 stdout 标准输出, stderr 标准错误, 或任何用 fopen 打开的文件&#x…...

C语言复习笔记--内存函数

在复习完字符函数和字符串函数之后,今天让我们复习一下内存函数吧.这一块的东西不太多,并且与之前的字符串函数有一些地方很相似,所以这里应该会比较轻松. memcpy使用和模拟实现 老规矩,先看函数原型 void * memcpy ( void * destination, const void * source, size_t num );…...

前端面试高频算法

前端面试高频算法 1 排序算法&#xff1b;1.1 如何分析一个排序算法1.1.1 执行效率3.1.2 内存消耗1.1.3 稳定性 1.2 冒泡排序&#xff08;Bubble Sort&#xff09;1.3 插入排序&#xff08;Insertion Sort&#xff09;1.4 选择排序&#xff08;Selection Sort&#xff09;1.5 归…...

云原生--核心组件-容器篇-4-认识Dockerfile文件(镜像创建的基础文件和指令介绍)

1、Dockerfile的定义与作用 定义&#xff1a; Dockerfile是一个文本文件&#xff0c;包含一系列Docker指令&#xff0c;用于自动化构建Docker镜像。Docker 在构建镜像时会按照Dockerfile中的指令逐步执行&#xff0c;每一行指令都会生成一个新的镜像层&#xff08;layer&#x…...

13.组合模式:思考与解读

原文地址:组合模式&#xff1a;思考与解读 更多内容请关注&#xff1a;7.深入思考与解读设计模式 引言 在软件开发中&#xff0c;是否曾经遇到过这样一种情况&#xff1a;你有一个对象&#xff0c;它本身很简单&#xff0c;但是它包含了其他类似的对象。随着系统变得越来越复…...

Pycharm(十七)生成器

一、生成器介绍 1.1 概述 生成器指的是Generator对象&#xff0c;它不再像以往一样&#xff0c;一次性生成所有的数据&#xff0c;而是用一个&#xff0c;再生成一个&#xff0c;基于用户写的规则&#xff08;条件&#xff09;来生成数据&#xff0c;如果条件不成立&#xff…...

盛元广通实验材料管理系统-实验室管理系统-LIMS

一、引言 在当下科学研究及各类实验日益频繁的背景下&#xff0c;实验材料管理成为实验室高效运作的核心环节。从“人工低效”到“智能自动化”&#xff0c;盛元广通可覆盖实验材料的采购、存储、使用、追踪等全流程&#xff0c;从功能适配性、技术性能、成本效益、供应商服务…...

检查 NetCDF Fortran的版本

执行 nf-config --all命令后&#xff0c;它会输出一堆信息&#xff0c;大致像这样&#xff1a; This netCDF-Fortran version: 4.6.0 netCDF-Fortran installation dir: /usr/local/netcdf4 Fortran compiler: gfortran Fortran compiler flags: -g -O2 Fortran preprocesso…...

MySQL 存储引擎与服务体系深度解析

一、存储引擎核心概念 基本定义 存储引擎:MySQL服务的核心组件,负责数据的存储、检索和管理版本演进: MySQL 5.0/5.1 默认使用MyISAM引擎MySQL 5.5/5.6+ 默认采用InnoDB引擎关键特性 不同存储引擎采用不同的数据存储结构和处理机制直接影响表的CRUD操作性能和数据安全特性作…...

乐企数电发票分布式发票号码生成重复的问题修复思路分享

文章目录 1.前言2.解决思路2.1错误姿势2.2歪打正着2.3正确姿势 3.总结 1.前言 由于之前接了乐企数电开票&#xff0c;服务上线之后&#xff0c;使用的公司少没有啥问题&#xff0c;后面切换了两家日开票量大的公司上线之后&#xff0c;就发现发票号码生成重复了&#xff0c;后面…...

多级缓存架构设计与实践经验

多级缓存架构设计与实践经验 在互联网大厂Java求职者的面试中&#xff0c;经常会被问到关于多级缓存的架构设计和实践经验。本文通过一个故事场景来展示这些问题的实际解决方案。 第一轮提问 面试官&#xff1a;马架构&#xff0c;欢迎来到我们公司的面试现场。请问您对多级…...

LCD1602液晶显示屏详解(STM32)

目录 一、介绍 二、传感器原理 1.原理图​编辑 2.接口说明 三、程序设计 main文件 lcd1602.h文件 lcd1602.c文件 四、实验效果 五、资料获取 项目分享 一、介绍 LCD1602A字符型液晶显示模块是专门用于显示字母、数字元、符号等的点阵型液晶显示模块。分4位和8位数据…...

Golang | 集合求交

文章目录 bitmap求交集2个有序链表多个有序链表跳表 bitmap求交集 2个有序链表 多个有序链表 为什么非最大的所有都要往后移动呢&#xff1f;因为现在已经知道交集即使有&#xff0c;也最小都是这个目前最大的了&#xff0c;其他不是最大的不可能是交集&#xff0c;所有除了最大…...

手机充电进入“秒充“时代:泡面刚下锅,电量已满格

现代人的生活节奏越来越快&#xff0c;手机充电技术也在飞速发展。从最初的"充电一整晚"到如今的"秒充"时代&#xff0c;充电效率的提升正在悄然改变着我们的生活习惯。最新数据显示&#xff0c;目前最快的手机充电技术仅需4分30秒就能充满一部手机的电量&…...

网站字体文件过大 导致字体从默认变成指定字体的时间过长

1.选择字体中只用到的字符集较小的包 只用到了数字&#xff0c;所以使用了 xx-sans.ttf的版本(86kb) 2.转换ttf格式为woff2 转换后26kb 3.使用字体 // 定义字体 font-face {font-family: "myFont";src: url(/assets/fonts/myFont.woff2) format(woff2);font-weigh…...

WPF常用技巧汇总 - Part 2

WPF常用技巧汇总-CSDN博客 主要用于记录工作中发现的一些问题和常见的解决方法。 目录 WPF常用技巧汇总-CSDN博客 1. DataGrid Tooltip - Multiple 2. DataGrid Tooltip - Cell值和ToolTip值一样 3. DataGrid Tooltip - Cell值和ToolTip值不一样 4. DataGrid - Ctrl A /…...

C++中析构函数

析构函数 析构函数&#xff08;Destructor&#xff09;是类的一种特殊成员函数&#xff0c;用于在对象的生命周期结束时执行清理操作&#xff0c;他的主要作用是释放对象占用资源&#xff0c;例如动态分配的内存&#xff0c;文件句柄或网络连接等。 特点 名称与类名称相同 单…...

树莓派超全系列教程文档--(44)如何在树莓派上编译树莓派内核

如何在树莓派上编译树莓派内核 构建内核下载内核源代码 本地构建内核构建配置使用 LOCALVERSION 自定义内核版本构建安装内核 文章来源&#xff1a; http://raspberry.dns8844.cn/documentation 原文网址 构建内核 操作系统预装的默认编译器和链接器被配置为构建在该操作系统…...

flask返回文件的同时返回其他参数

参考:flask实现上传文件与下载文件_flask 文件上传和下载-CSDN博客 在 Flask 中,返回文件的同时附加额外参数(如处理时间)可以通过 自定义 HTTP 响应头 或 返回 JSON 数据与文件结合 的方式实现。以下是具体方法和示例: 方法 1:通过 HTTP 响应头 附加参数(推荐) 将参…...

C++23 std::move_only_function:一种仅可移动的可调用包装器 (P0288R9)

文章目录 一、定义与基本概念1.1 定义1.2 基本概念 二、特点2.1 仅可移动性2.2 支持多种限定符2.3 无target_type和target访问器2.4 强前置条件 三、使用场景3.1 处理不可复制的可调用对象3.2 性能优化3.3 资源管理 四、与其他可调用包装器的对比4.1 与std::function的对比4.2 …...