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

后端返回了 xlsx 文件流,前端怎么下载处理

当后端返回一个 .xlsx 文件流时,前端可以通过 JavaScript 处理这个文件流并触发浏览器下载。


实现步骤

  1. 发送请求获取文件流
    使用 fetchaxios 等工具向后端发送请求,确保响应类型设置为 blob(二进制数据流)。

  2. 创建 Blob 对象
    将返回的文件流转换为 Blob 对象,这是处理二进制数据的标准方式。

  3. 生成下载链接
    使用 URL.createObjectURL 方法将 Blob 对象转换为一个临时 URL。

  4. 触发下载
    动态创建一个 <a> 标签,设置其 href 属性为生成的临时 URL,并调用 click() 方法触发下载。

  5. 清理资源
    下载完成后,使用 URL.revokeObjectURL 释放生成的临时 URL,避免内存泄漏。


使用 axios 实现

如果你使用的是 axios,可以这样实现:

import axios from 'axios';const downloadXlsx = async () => {try {// 发送请求并获取文件流const response = await axios.get('/api/download-xlsx', {responseType: 'blob', // 确保响应类型为 blobheaders: {'Authorization': 'Bearer your_token_here', // 如果需要携带认证信息},});// 创建 Blob 对象const blob = new Blob([response.data], { type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' });// 创建临时 URLconst url = window.URL.createObjectURL(blob);// 创建 <a> 标签并触发下载const a = document.createElement('a');a.href = url;a.download = 'example.xlsx'; // 设置下载文件名document.body.appendChild(a); // 将 <a> 添加到 DOM 中(可选)a.click(); // 触发点击事件// 清理资源window.URL.revokeObjectURL(url);a.remove(); // 移除 <a> 标签} catch (error) {console.error('下载文件时发生错误:', error.message || '未知错误');}
};// 调用函数
downloadXlsx();
responseType: 'blob' 的含义
  • responseType 是 Axios 提供的一个配置选项,用于告诉 Axios 如何解析服务器返回的数据。
  • 当设置为 'blob' 时,表示你期望服务器返回的数据是一个二进制大对象(Binary Large Object,简称 Blob)。
Blob 是什么?
  • Blob 是一种数据类型,通常用来表示不可变的、原始数据的类文件对象。
  • 它可以包含文本、图像、音频、视频等二进制数据,或者混合内容。
  • 在前端开发中,Blob 常用于处理文件下载、图片预览、或者将数据保存为文件。
为什么需要 responseType: 'blob'

当从服务器请求文件(如 Excel 文件、PDF 文件、图片等)时,服务器通常会返回二进制数据。如果直接使用默认的 responseType(通常是 'json'),Axios 会尝试将响应数据解析为 JSON 格式,这会导致错误或数据损坏。

通过设置 responseType: 'blob',你可以确保 Axios 正确地将响应数据作为二进制数据处理,而不会尝试将其解析为其他格式(如 JSON 或文本)。

代码的作用
const response = await axios({url: '/api/download-xlsx',method: 'GET',responseType: 'blob', // 指定响应数据为 Blob 类型
});
  1. 发起 GET 请求

    • 向 /api/download-xlsx 发起一个 GET 请求,通常用于下载文件(例如 Excel 文件)。
  2. 指定响应类型

    • 设置 responseType: 'blob',告诉 Axios 将服务器返回的数据解析为 Blob 对象。
  3. 处理响应数据

    • 返回的 response.data 将是一个 Blob 对象,代表下载的文件内容。

使用 fetch 实现

const downloadXlsx = async () => {try {// 发送请求并获取文件流const response = await fetch('/api/download-xlsx', {method: 'GET',headers: {'Authorization': 'Bearer your_token_here', // 如果需要携带认证信息},});// 检查响应是否成功if (!response.ok) {throw new Error(`HTTP error! Status: ${response.status}`);}// 获取 blob 数据const blob = await response.blob();// 创建临时 URLconst url = window.URL.createObjectURL(blob);// 创建 <a> 标签并触发下载const a = document.createElement('a');a.href = url;a.download = 'example.xlsx'; // 设置下载文件名document.body.appendChild(a); // 将 <a> 添加到 DOM 中(可选)a.click(); // 触发点击事件// 清理资源window.URL.revokeObjectURL(url);a.remove(); // 移除 <a> 标签} catch (error) {console.error('下载文件时发生错误:', error.message || '未知错误');}
};// 调用函数
downloadXlsx();
1. 定义异步函数
javascript
深色版本
const downloadXlsx = async () => {
  • async 关键字表示这是一个异步函数。
  • 异步函数允许使用 await 来等待异步操作(如网络请求)完成。

2. 发起 HTTP 请求
const response = await fetch('/api/download-xlsx', {method: 'GET',headers: {'Authorization': 'Bearer your_token_here', // 如果需要携带认证信息},
});
  • 使用 fetch 发起一个 GET 请求到 /api/download-xlsx

  • headers 部分用于设置请求头:

    • 'Authorization' 是一个常见的请求头字段,用于传递用户的身份验证信息(如 JWT Token)。
    • 如果 API 不需要认证,可以省略 headers

3. 检查响应状态
if (!response.ok) {throw new Error(`HTTP error! Status: ${response.status}`);
}
  • response.ok 是一个布尔值,表示 HTTP 响应的状态码是否在 200-299 范围内。
  • 如果响应失败(如 404 或 500 错误),会抛出一个错误,并终止后续代码执行。
  • 抛出的错误会被 catch 块捕获。

4. 获取 Blob 数据
const blob = await response.blob();
  • response.blob()  将响应数据解析为一个 Blob 对象。
  • Blob 是一种二进制数据类型,通常用来表示文件内容。
  • await 确保在继续执行后续代码之前,blob 数据已经被完全加载。

5. 创建临时 URL
const url = window.URL.createObjectURL(blob);
  • window.URL.createObjectURL(blob)  创建一个指向 Blob 的临时 URL。
  • 这个 URL 可以被用作 <a> 标签的 href 属性,从而触发文件下载。

6. 创建 <a> 标签并触发下载
const a = document.createElement('a');
a.href = url;
a.download = 'example.xlsx'; // 设置下载文件名
document.body.appendChild(a); // 将 <a> 添加到 DOM 中(可选)
a.click(); // 触发点击事件
  • 创建 <a> 标签

    • 使用 document.createElement('a') 动态创建一个 <a> 元素。
  • 设置 <a> 标签属性

    • href:设置为前面生成的临时 URL。
    • download:指定下载文件的名称(如 example.xlsx)。
  • 添加到 DOM 并触发点击

    • 将 <a> 标签添加到文档中(虽然不是必须,但某些浏览器可能需要这样做)。
    • 使用 a.click() 模拟用户点击,从而触发文件下载。

7. 清理资源
window.URL.revokeObjectURL(url);
a.remove();
  • 释放临时 URL

    • 使用 window.URL.revokeObjectURL(url) 释放前面创建的临时 URL,避免内存泄漏。
  • 移除 <a> 标签

    • 使用 a.remove() 从 DOM 中移除 <a> 标签,保持页面整洁。

8. 错误处理
} catch (error) {console.error('下载文件时发生错误:', error.message || '未知错误');
}
  • catch 块 用于捕获和处理可能出现的错误。
  • 如果在 try 块中的任何一步发生错误(如网络问题、API 返回错误等),都会进入 catch 块。
  • 使用 console.error 打印错误信息,方便调试。

9. 调用函数
downloadXlsx();
  • 最后调用 downloadXlsx 函数,触发整个文件下载流程。
适用场景
  • 下载动态生成的文件(如 Excel 表格、PDF 文档等)。
  • 需要通过 API 获取文件内容并提供给用户下载的场景。
注意事项
  1. 跨域问题

    • 如果 API 存在跨域限制,需要确保服务器配置了正确的 CORS(跨域资源共享)策略。
  2. 大文件下载

    • 对于非常大的文件,可能需要考虑分块下载或流式处理,以避免内存占用过高。
  3. 浏览器兼容性

    • fetch 和 Blob 在现代浏览器中广泛支持,但在一些老旧浏览器中可能需要使用 XMLHttpRequest 替代。

关键点说明

  1. 设置正确的 MIME 类型

    • .xlsx 文件的 MIME 类型是 application/vnd.openxmlformats-officedocument.spreadsheetml.sheet
    • 如果后端未正确设置 MIME 类型,前端可以通过 Blob 的第二个参数手动指定。
  2. 动态文件名

    • 如果后端在响应头中提供了文件名(例如通过 Content-Disposition),可以通过解析响应头来动态设置文件名。
    • 示例:
      const contentDisposition = response.headers['content-disposition'];
      let fileName = 'example.xlsx';
      if (contentDisposition && contentDisposition.includes('filename=')) {fileName = contentDisposition.split('filename=')[1].split(';')[0];
      }
      
  3. 错误处理

    • 在实际开发中,务必对请求错误进行处理,例如检查 HTTP 状态码是否为 200,或者捕获网络异常。
  4. 兼容性

    • 上述方法适用于现代浏览器(如 Chrome、Firefox、Edge、Safari)。如果需要支持旧版浏览器,可能需要引入 FileSaver.js 库。

使用 FileSaver.js 简化操作

如果你希望简化文件下载逻辑,可以使用第三方库 file-saver。安装后,只需几行代码即可完成下载。

安装
npm install file-saver
使用示例
import { saveAs } from 'file-saver';
import axios from 'axios';const downloadXlsx = async () => {try {const response = await axios({url: '/api/download-xlsx',method: 'GET',responseType: 'blob',});// 使用 FileSaver.js 保存文件saveAs(response.data, 'example.xlsx');} catch (error) {console.error('下载失败:', error);}
};// 调用函数
downloadXlsx();

总结

  • 核心步骤:获取文件流 -> 转换为 Blob -> 创建临时 URL -> 触发下载 -> 清理资源。
  • 推荐工具fetchaxios 可以轻松获取文件流,FileSaver.js 可以进一步简化代码。
  • 注意事项:确保后端返回的文件流格式正确,前端设置合适的 MIME 类型和文件名。

axios 处理

try {const response = await axios({url: '/api/download-xlsx',method: 'GET',responseType: 'blob', // 一定要注意请求时加此方法});getExportListApi(exportCarryData).then((res) => {// 创建一个a标签const link = document.createElement('a');const url = window.URL.create0bjectURL(new Blob([res.data])); link.href = url;link.setAttribute('download', exportfile);document.body.appendChild(link); link.click();// 销毁a标签document.body.removeChild(link); window.URL.revoke0bjectURL(url);message.success('导出成功!');}); 

相关文章:

后端返回了 xlsx 文件流,前端怎么下载处理

当后端返回一个 .xlsx 文件流时&#xff0c;前端可以通过 JavaScript 处理这个文件流并触发浏览器下载。 实现步骤 发送请求获取文件流&#xff1a; 使用 fetch 或 axios 等工具向后端发送请求&#xff0c;确保响应类型设置为 blob&#xff08;二进制数据流&#xff09;。 创建…...

js中async+await+promise的用法及常见问题总结

文章目录 概况asyncawaitPromise总结常见问题 概况 在ts/js中&#xff0c;async 和 await 是用于简化异步操作的关键字&#xff0c;一般与Promise联用&#xff08;不理解Promise可以看一下这篇《JS中Promise用法&#xff08;简要说明&#xff09;》&#xff09;。它们的核心作…...

单纯形法之大M法

1. 问题背景与标准化 在求解某些线性规划问题时&#xff0c;往往难以直接找到初始的基本可行解。特别是当约束中存在等式或 “≥” 类型的不等式时&#xff0c;我们需要引入人工变量来构造一个初始可行解。 考虑如下标准形式问题&#xff08;假设为最大化问题&#xff09;&am…...

一个数组分为两个sum相等的数组

vector&#xff0c;问是否可以拆成两部分&#xff0c;使其两部分的总和相同&#xff0c;用代码写一下 #include <iostream> #include <vector>using namespace std;bool canPartition(vector<int>& nums) {int sum 0;for (int num : nums) {sum num;…...

Socket如何实现客户端和服务器间的通信

使用Socket实现客户端和服务器间的通信 Socket是一种网络编程接口&#xff0c;广泛用于实现客户端和服务器之间的通信。在网络应用程序中&#xff0c;Socket提供了一种简单而强大的机制来建立和管理网络连接。本文将详细介绍如何使用Python的Socket模块来实现基本的客户端和服…...

崖山数据库(YashanDB)部署全流程详解

文章目录 引言 第1部分&#xff1a;环境准备 服务器要求 初始环境调整 第2部分&#xff1a;yasboot工具介绍 yasboot核心功能 yasboot进程架构 第3部分&#xff1a;YashanDB安装步骤 创建安装用户 目录规划 命令行安装流程 步骤1&#xff1a;生成配置文件 步骤2&a…...

07_JavaScript函数作用域_递归

目录 一、作用域&#xff08;重点&#xff09; 二、变量的使用规则 &#xff08;重点&#xff09; 2.1 访问规则 2.2 赋值规则 三、递归函数 &#xff08;难点&#xff09; 了解 四、对象 4.1 对象的创建 一、作用域&#xff08;重点&#xff09; 什么是作用域 ? 作用…...

基于大模型预测的初治菌阳肺结核诊疗方案研究报告

目录 一、引言 1.1 研究背景与意义 1.2 研究目的 二、初治菌阳肺结核概述 2.1 疾病定义与病理机制 2.2 流行病学特征 2.3 传统诊疗方法与局限性 三、大模型在初治菌阳肺结核预测中的应用原理 3.1 大模型技术简介 3.2 数据收集与预处理 3.3 模型构建与训练 3.4 模型…...

C# Modbus TCP/IP学习记录

Modbus协议中&#xff0c;角色分为主站&#xff08;Mater&#xff09;、从站&#xff08;Slave&#xff09;&#xff1b;数据类型分为线圈&#xff08;Coil&#xff09;、离散输入&#xff08;Input&#xff09;、保持寄存器&#xff08;HoldingRegister&#xff09;、输入寄存…...

斜线、短横、空格,三种分隔日期的优雅解析(Python | DeepSeek)

标准日期解析操作&#xff0c;str.replace链式如灵蛇蜿蜒&#xff0c;三元表达式像空灵仙家妙法。 笔记模板由python脚本于2025-03-25 22:32:24创建&#xff0c;本篇笔记适合三元表达式、字符串操作修习的coder翻阅。 【学习的细节是欢悦的历程】 博客的核心价值&#xff1a;在…...

Skynet 中 snlua 服务启动整体流程分析

前言&#xff1a; 在 Skynet 中&#xff0c;Lua 扮演了极其重要的角色。Skynet 大多数业务逻辑都跑在一个个 Lua 服务里&#xff0c;而能够将 Lua 环境嵌入到 Skynet 框架下&#xff0c;并与 Skynet 消息调度机制完美结合&#xff0c;正是 snlua 服务所承担的核心功能。 本文将…...

RWA代币化崛起中的香港机遇:数字金融新枢纽的破局之道

引言&#xff1a;全球资产代币化浪潮中的香港坐标 在2025年全球金融数字化重构的关键节点&#xff0c;RWA&#xff08;现实世界资产代币化&#xff09;市场以年均740%的增速重塑价值流动规则。香港凭借独特的政策创新、跨境枢纽优势及庞大的资产储备&#xff0c;正从传统金融中…...

Docker Compose介绍

基本概念 Docker-Compose是Docker官方的开源项目&#xff0c;负责实现对docker容器集群的快速编排。 可以这么理解&#xff0c;docker compose是docker提出的一个工具软件&#xff0c;可以管理多个docker容器组成一个应用&#xff0c;只需要编写一个YAML格式的配置文件docker…...

【LeetCode 题解】算法:15.三数之和

一、问题描述 在 LeetCode 上有这样一道经典的算法题&#xff0c;题目要求给定一个整数数组 nums&#xff0c;找出所有不重复的三元组 [nums[i], nums[j], nums[k]]&#xff0c;需要满足以下两个条件&#xff1a; 三个元素的索引互不相同&#xff0c;即 i ! j&#xff0c;i ! …...

springboot使用阿里限流框架-sentinel

当前项目源码 控制台下载 启动bin中的看板服务&#xff1a;账号密码:sentinel/sentinel 官方文档地址 项目引入依赖 <!-- sentinel注解支持 --> <dependency><groupId>com.alibaba.csp</groupId><artifactId>sentinel-annotation-aspectj<…...

Ubuntu20.04系统安装IsaacSim4.5与IsaacLab环境

Introduction 今天用自己的Ubuntu20.04系统安装最新更新的IsaacSim 4.5 与 最新版的IsaacLab遇到了问题&#xff0c;且这个问题组里师兄之前也遇到了&#xff0c;我的解决方法是从头来过&#xff0c;所及记录一下。 IsaacSim现在支持pip安装&#xff0c;但是Ubuntu20.04的pip…...

【大模型】数字人 EchoMimicV2 的环境配置和使用

一、EchoMimicV2的简单介绍 EchoMimicV2是EchoMimicV1的升级版本&#xff0c;旨在通过音频驱动生成更加自然和流畅的半身人类动画。它能够让用户仅通过简单的音频输入&#xff0c;生成与声音内容相匹配的动画效果&#xff0c;使虚拟人物看起来更加生动。 作者&#xff1a;由蚂蚁…...

导入 Excel 规则批量修改或删除 PDF 文档内容

需要对 PDF 文档内容进行修改的时候&#xff0c;通常我们会需要借助一些专业的工具来帮我们完成。那我们如果需要修改的 PDF 文档较多的时候&#xff0c;有什么方法可以帮我们实现批量操作呢&#xff1f;今天这篇文章就给大家介绍一下当我们需要批量修改多个 PDF 文档的时候&am…...

2.Excel :快速填充和拆分重组

一 案例1&#xff1a;快速填充 电子邮件中包含每个人的人名&#xff0c;现在要提取电子邮件中的姓名到名字列。 方法1&#xff1a;将 Nancy 复制到单元格后&#xff0c;邮件会高亮&#xff0c;然后输入A的时候系统就会知道提取名字了。 补充&#xff1a;如果第三个位置输入错误…...

python tkinter 开发蓍草占卜系统

1. 项目概述 1.1 简介 蓍草占卜是中国传统的占卜方法&#xff0c;用于演算六十四卦。本系统通过现代编程技术&#xff0c;将传统的蓍草占卜方法数字化&#xff0c;提供一个准确、便捷的占卜工具。 蓍草占卜&#xff0c;作为中国古代的一种传统占卜方法&#xff0c;承载着深厚…...

综合小实验之电视机

综合小实验1 一、实验拓扑图 二、实验要求 按照图示配置IP地址&#xff1b;按照图示区域划分配置对应的动态路由协议&#xff1b;在R7上配置dhcp服务器&#xff0c;能够让pc可以获取IP地址&#xff1b;将所有环回⼝宣告进ospf中&#xff0c;将环回⼝7宣告进rip中&#xff0c;…...

全排列|| 分发饼干 摆动序列

1.给定一个可包含重复数字的序列 nums &#xff0c;按任意顺序 返回所有不重复的全排列。 示例 1&#xff1a; 输入&#xff1a;nums [1,1,2] 输出&#xff1a; [[1,1,2], [1,2,1], [2,1,1]] 示例 2&#xff1a; 输入&#xff1a;nums [1,2,3] 输出&#xff1a;[[1,2,3…...

【开源宝藏】用 JavaScript 手写一个丝滑的打字机动画效果

你当前项目实现了一个非常丝滑的 打字机文字效果动画&#xff0c;使用的是自定义的 typical.js 脚本。下面我将给出一份逐步拆解的中文教程&#xff0c;帮你或其他初学者快速上手并自定义这个打字效果。 ✨ 最终效果 打开页面后&#xff0c;中央会逐字显示&#xff1a; Hello…...

推荐1款简洁、小巧的实用收音机软件,支持手机和电脑

聊一聊 没想到现在还有人喜欢听广播。 我一直以为听广播必须要用那种小广播机才可以。 原来手机或电脑上也是可以的。 今天给大家分享一款可以在电脑和手机上听广播的软件。 软件介绍 龙卷风收音机 电台广播收音机分电脑和手机两个版本。 电脑端无需安装&#xff0c;下载…...

64. MfgTool烧写工具详解

一、MfgTool工具简介 1、mfgtool是NXP官方做的向I.MX系列烧写系统的软件&#xff0c;运行在windows下。可以烧写uboot.imx、zImage、dtb&#xff0c;rootfs。通过USB烧写。 Mfgtool里面默认存放了NXP官方开发板的系统文件&#xff0c; 2、基本原理 向开发板烧系统分两部分&am…...

3、孪生网络/连体网络(Siamese Network)

目的: 用Siamese Network (孪生网络) 解决Few-shot learning (小样本学习)。 Siamese Network并不是Meta Learning最好的方法, 但是通过学习Siamese Network,非常有助于理解其他Meta Learning算法。 这里介绍了两种方法:Siamese Network (孪生网络)、Trplet Loss Siam…...

前端学习笔记--CSS

HTMLCSSJavaScript 》 结构 表现 交互 如何学习 1.CSS是什么 2.CSS怎么用&#xff1f; 3.CSS选择器&#xff08;重点&#xff0c;难点&#xff09; 4.美化网页&#xff08;文字&#xff0c;阴影&#xff0c;超链接&#xff0c;列表&#xff0c;渐变。。。&#xff09; 5…...

开个坑记录一下树莓派4B部署yolo的一些问题

问题一&#xff1a;操作系统与内核信息 这个问题困扰了我一天半&#xff0c;下载的时候显示的信息是aar64的系统&#xff0c;但是这并无意味着一个问题&#xff0c;那就是你的操作系统是64位的。需要采用如下的指令查看&#xff1a; getconf LONG_BIT 我在树莓派得出来的操作…...

1.1 结构体与类对象在List中使用区别

一、问题的起源如下的代码是错误的&#xff0c;无法编译通过 struct Point {public int X;public int Y; }List<Point> points new List<Point> { new Point { X 1, Y 2 } }; points[0].X 10; // 编译错误&#xff01;无法修改副本的字段 二、原因分析 在C#中&…...

详细说明windows系统函数::SetUnhandledExceptionFilter(ExceptionFilter)

::SetUnhandledExceptionFilter(ExceptionFilter); 是 Windows 编程中用于设置顶层未处理异常过滤器的关键 API 调用。它属于 Windows 结构化异常处理&#xff08;SEH, Structured Exception Handling&#xff09;机制的一部分&#xff0c;主要用于捕获那些未被程序内部处理的异…...

力扣刷题39. 组合总和

39. 组合总和 - 力扣&#xff08;LeetCode&#xff09; 需要定义一个index变量用来记录访问数组的下标&#xff0c;每次递归进行传参&#xff0c;在搜索过程中&#xff0c;因为为了避免重复数据&#xff0c;而且允许一个元素的重复出现&#xff0c;传入index时传入当前遍历的i…...

正弦函数的连续傅里叶变换正弦序列的DTFT

正弦序列 时域 x [ n ] sin ⁡ ( ω 0 n ) x[n] \sin(\omega_0 n) x[n]sin(ω0​n)频域 X ( e j ω ) j π 2 [ δ ( ω − ω 0 ) − δ ( ω ω 0 ) ] X({\rm e}^{{\rm j}\omega}) \frac{{\rm j}\pi}{2} \left[ \delta(\omega - \omega_0) - \delta(\omega \omega_0…...

winstart.wsf 病毒清理大作战

0x00 背景 发现感染了winstart.wsf 病毒如何清理。 0x01 现象 遍历Users下每个目录以及C:\和C:\Windows\Temp 2个目录写入病毒文件。 C:\Users\Administrator\AppData\Local\Temp\winstart.wsf C:\Users\Administrator\AppData\Roaming\Microsoft\Windows\Start Menu\Program…...

leetcode 20.有效括号

20. 有效的括号 - 力扣&#xff08;LeetCode&#xff09; class Solution:def isValid(self, s: str) -> bool:stack []for i in s :if i in ((,{,[ ):stack.append(i)elif i in () ):# 这种情况是 栈弹出元素为空时候 &#xff0c;右半部分的括号多出来一些 比如&#x…...

Leetcode刷题笔记1 图论part07

卡码网 53 寻宝 prim算法 prim算法核心就是三步&#xff0c;称为prim三部曲&#xff1a; 第一步&#xff0c;选距离生成树最近节点第二步&#xff0c;最近节点加入生成树第三步&#xff0c;更新非生成树节点到生成树的距离&#xff08;即更新minDist数组&#xff09; def p…...

unittest自动化测试实战

&#x1f345; 点击文末小卡片&#xff0c;免费获取软件测试全套资料&#xff0c;资料在手&#xff0c;涨薪更快 为什么要学习unittest 按照测试阶段来划分&#xff0c;可以将测试分为单元测试、集成测试、系统测试和验收测试。单元测试是指对软件中的最小可测试单元在与程…...

flask,示例及解释

1&#xff09; from flask import Flask, render_templateapp Flask(__name__)app.route(/) def index():return render_template(m1index.html)app.route(/get_type) def get_type():return ["语文", "数学"]if __name__ __main__:app.run(host0.0.0.0…...

电机倍频曲线的一些奇异特性-原因分析及应用

这里对感应电机倍频曲线的特征进行了说明&#xff0c;然后将其特性用于电机转差率和工况的测量。先给出可以直接利用的结论&#xff1a; 电机的工况和转差率谱线会体现为5x,7x谱线调制在基频附近。两条调制过携带s信息的谱线距离基频谱线的距离。 与真实转速相对同步转速的频差…...

基于Ebay拍卖网站成交价格的影响因素分析

摘要:近些年来网上拍卖的不断地发展&#xff0c;网上购物慢慢变成了大家普遍接受的购物方式。因此关于网上拍卖的研究日益成为很多人研究的重点。 影响拍卖网站价格的因素很多&#xff0c;但很少有人分得清楚哪些因素才是比较重要的因素&#xff0c;因此对价格因素分析&#x…...

详解图卷积网络

文章目录 GCN/RGCN图卷积网络概述--运作原理**1. GCN&#xff08;Graph Convolutional Network&#xff0c;图卷积网络&#xff09;****1.1 核心思想****1.2 公式****1.3 特点****1.4 总结** **2. RGCN&#xff08;Relational Graph Convolutional Network&#xff0c;关系型图…...

Java 8-17核心特性全景解析之Java9、10

Java 9 核心特性解析 Java 9在2017年9月发布&#xff0c;带来了模块系统等重大变革&#xff0c;是Java平台现代化的重要一步。 模块系统 (Project Jigsaw) 特性概述 模块系统是Java 9最重要的特性&#xff0c;旨在解决Java平台和应用程序的可伸缩性问题&#xff0c;提供更好…...

mysql的学习

关系性数据库需要遵循ACID规则 原子性&#xff1a; 事务是最小的执行单位&#xff0c;不允许分割。事务的原子性确保动作要么全部完成&#xff0c;要么完全不起作用&#xff1b; 一致性&#xff1a; 执行事务前后&#xff0c;数据保持一致&#xff0c;例如转账业务中&#xff…...

leecode 560题

一、题目解析 题目如下->: 这道题的问题是&#xff0c;找到目标值为k的所有连续子串个数&#xff0c;因此最简单最容易想到的就是枚举 两个指针枚举起来确实可以解决&#xff0c;但是时间复杂度极大&#xff0c;达到了O(n^2)的级别 因此这不是我们想要的 二、解题思路 2.1 …...

借壹起航东风,中国工厂出海开启新征程

在经济全球化不断深入的当下&#xff0c;中国工厂正以积极的姿态投身海外市场&#xff0c;渴望在全球商业版图中占据一席之地&#xff0c;绽放独特的光彩。然而&#xff0c;出海之路充满了挑战与艰辛&#xff0c;品牌塑造困难重重、询盘量不稳定、营销成本居高不下等问题&#…...

Joomla教程—查看网站的前台页面与菜单管理(栏目管理)

原文&#xff1a;Joomla 查看网站的前台页面_w3cschool 在本节中&#xff0c;我们将简单介绍一下JOOMLA的前台界面。通过本节的介绍&#xff0c;希望你能对JOOMLA的界面组成有一个大致的了解。 你可以直接在浏览器中输入http://localhost/zmax/ 就会出现我们网站的首页了。也…...

HCIA-WLAN实验

1、划分VLAN&#xff0c;配置IP地址 2、配置AC作为AP的DHCP服务器自动为AP分配IP地址 dhcp enable interface Vlanif100 dhcp select interface 3、建立CAPWAP隧道 capwap source interface vlanif100 4、配置WLAN业务配置&#xff0c;下发至AP ①配置&#xff1a;wlan …...

DNA-PAINT

参考: 【科研教程】NUPACK网页版使用教程 https://www.bilibili.com/video/BV1G94y1W7mN/NUPACK新版网页版教程-模拟部分 https://zhuanlan.zhihu.com/p/678730568NUPACK 4.0 User Guide https://docs.nupack.org/NUPACK网页版使用指南 https://zhuanlan.zhihu.com/p/55024017…...

VS2022的第一个Qt程序——实战《加载并显示图像》

目录 一、UI设计 S1&#xff1a;双击Form Files下.ui文件&#xff0c;进入ui设计界面Qt Designer S2&#xff1a;然后拖动一个Push Button和Label控件到界面 S3&#xff1a;点击信号与槽&#xff0c;然后点击PushButton往外拉一下 S4&#xff1a;松开鼠标进入配置连接界面…...

从概率到梯度:理解分类问题中交叉熵的优越性

分类问题一般使用交叉熵&#xff08;Cross-Entropy&#xff09;而不是平方损失&#xff08;Square Loss&#xff09;函数1. **概率解释**2. **梯度性质**3. **对错误的惩罚**4. **计算复杂度**5. **总结** 分类问题一般使用交叉熵&#xff08;Cross-Entropy&#xff09;而不是平…...

如何选择?Postman vs JMeter 对比介绍

Postman 和 JMeter 作为两款主流测试工具&#xff0c;各有特色。本文将从多个维度详细对比这两款工具最新特性和应用场景。 工具基本介绍 对比项 Postman JMeter 类型 API 开发和测试工具 性能测试工具 开源情况 闭源&#xff0c;提供免费版 开源&#xff08;Apache L…...