文件下载保存接口的创建_FastAPI

文件下载保存接口的创建

  • 功能描述
  • 实现代码
  • 功能演示

功能描述

在网页上对数据进行下载保存处理。例如点击网页上的保存按钮,会把文件下载到本地。下面就是对下载保存功能的实现。

实现代码

@gpt_router.get("/export_data")
async def export_data():# 需要下载保存的数据processed_data = ['1','2','3','4','5']# 创建一个临时文件with tempfile.NamedTemporaryFile(delete=False, suffix=".json") as temp_file:try:# 将数据转换成 JSON 格式的字符串json_data = json.dumps(session.to_dict(), default=str, indent=2, ensure_ascii=False)# 将 JSON 字符串写入临时文件temp_file.write(json_data.encode("utf-8"))# 获取临时文件的路径file_path = temp_file.name# 提供文件下载链接return FileResponse(file_path, filename="exported_data.json", media_type="application/json")except Exception as e:# 处理异常情况raise HTTPException(status_code=500, detail=f"导出数据失败: {str(e)}")

功能演示

这里是直接访问接口地址就可以下载,例如直接在网页地址栏输入https://www.xiao.cn/asong/export_data,然后按下回车

示例
在这里插入图片描述
在这里插入图片描述

前端部分,保存按钮可以用一个<a></a>标签,属性设置为打开一个新的页面,然后跳转地址设置为数据保存的链接地址,比如href="https://www.xiao.cn/asong/export_data",这样在点击保存按钮的时候会自动打开新页面进行下载操作。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/199002.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

应用在触摸开关触控屏中的电容式触摸芯片

触摸开关是一种电子开关&#xff0c;使用时轻按开关按钮即可打开开关。松开手时&#xff0c;开关断开&#xff0c;内部结构由金属弹片受力弹动断开或者由电容值&#xff0c;电阻值等电气参数改变而控制。触摸开关一般是指应用触摸感应芯片原理设计的一种墙壁开关&#xff0c;是…

nginx部署和安装-后端程序多端口访问-后端代理设置

部分补充 查看nginx是否安装http_ssl_module模块 ./nginx -V 看到有 configure arguments: --with-http_ssl_module, 则已安装。 如果没有安装&#xff1a;参考文档 nginx官网地址&#xff1a;nginx: download 这里下载nginx-1.18.0稳定版tar.gz 下载后&#xff0c;利用…

阶段四:数据分析与机器学习(学习如何使用matplotlib和seaborn进行数据可视化)

Matplotlib 和 Seaborn 是 Python 中常用的数据可视化库。Matplotlib 是一个基本的绘图库,可以用于绘制各种静态、动态、交互式和三维图表。Seaborn 基于 Matplotlib,提供了更高级的接口和更美观的默认样式。 下面是一个简单的教程,介绍如何使用 Matplotlib 和 Seaborn 进行…

JavaScript 数组方法 reduce() 的用法

一、概述 在JavaScript中&#xff0c;reduce()方法是一个非常实用的数组方法&#xff0c;它接收一个函数作为累加器&#xff08;accumulator&#xff09;&#xff0c;数组中的每个值&#xff08;从左到右&#xff09;开始缩减&#xff0c;最终为一个值。这个方法在处理数组…

OpenTelemetry系列 - 第4篇 OpenTelemetry K8S生态

目录 一、【Helm】添加OTel Helm repo二、【Helm Chart】OTel Collector2.1 daemonset2.2 deloyment 三、【K8S Operator】OTel Operator3.1 安装OTel Operator3.2 部署OpenTelemetryCollector3.2.1 Deloyment Mode3.2.2 DeamonSet Mode3.2.3 StatefulSetMode3.2.4 Sidecar Mod…

RocketMq原理(待完善)

MQ作用 异步解耦削峰 RocketMQ背景 ​ RocketMQ是阿里巴巴开源的一个消息中间件&#xff0c;在阿里内部历经了双十一等很多高并发场景的考验&#xff0c;能够处理亿万级别的消息。2016年开源后捐赠给Apache&#xff0c;现在是Apache的一个顶级项目。 ​ 早期阿里使用ActiveM…

基于SUMO和强化学习的交通优化

本文旨在解释强化学习方法如何通过 TraCl 与 SUMO 配合使用&#xff0c;以及这如何有利于城市交通管理和自动驾驶车辆的路径优化。 NSDT工具推荐&#xff1a; Three.js AI纹理开发包 - YOLO合成数据生成器 - GLTF/GLB在线编辑 - 3D模型格式在线转换 - 可编程3D场景编辑器 - REV…

Node包管理工具 - nvm、npm、yarn、cnpm、pnpm

转载说明 原文地址 简介 nvm : 可以实现一台电脑&#xff0c;拥有多个版本的Node npm : node package manager 下载Node后自带的一个包管理工具 yarn : npm 的升级版&#xff0c;更优秀 cnpm : 配置下载非官方地址的依赖&#xff08;淘宝、华为、腾讯镜像&#xff09; pnpm :…

day70

今日回顾 session 中间件 auth session Cookie虽然在一定程度上解决了“保持状态”的需求&#xff0c;但是由于Cookie本身最大支持4096字节&#xff0c;以及Cookie本身保存在客户端&#xff0c;可能被拦截或窃取&#xff0c;因此就需要有一种新的东西&#xff0c;它能支持更…

辛普森距离(SD,Sampson Distance)

定义 Sampson误差是复杂性介于代数误差和几何误差之间&#xff0c;但非常近似于几何误差的一种误差。 应用 SLAM对极几何中使用到SD来筛选内点&#xff1a; 1.随机采样8对匹配点 2.8点法求解基础矩阵 ​&#xff1b; 3.奇异值约束获取基础矩阵F&#xff1b; 4.计算误差&…

4、单例模式(Singleton Pattern)

单例模式是保证系统实例唯一性的重要手段。单例模式首先通过将类的实例化方法私有化来防止程序通过其他方式创建该类的实例&#xff0c;然后通过提供一个全局唯一获取该类实例的方法帮助用户获取类的实例&#xff0c;用户只需也只能通过调用该方法获取类的实例。 单例模式的设…

通达信指标公式19:龙虎榜股票池——主力控盘度的计算方法

0.小红牛本指标&#xff0c;选股的思路说明&#xff1a;控盘度&#xff0c;又称主力控盘&#xff0c;是指主力控制了某只股票的大部分流通股&#xff0c;从而控制了股票的价格。主力控盘的目的通常是为了获取更多的收益&#xff0c;通过控制股票价格来实现其策略。所以首要分析…

(04730)电路分析基础之电阻、电容及电感元件

04730电子技术基础 语雀&#xff08;完全笔记&#xff09; 电阻元件、电感元件和电容元件的概念、伏安关系&#xff0c;以及功率分析是我们以后分析电 路的基础知识。 电阻元件 电阻及其与温度的关系 电阻 电阻元件是对电流呈现阻碍作用的耗能元件&#xff0c;例如灯泡、…

Hadoop学习笔记(HDP)-Part.04 基础环境配置

目录 Part.01 关于HDP Part.02 核心组件原理 Part.03 资源规划 Part.04 基础环境配置 Part.05 Yum源配置 Part.06 安装OracleJDK Part.07 安装MySQL Part.08 部署Ambari集群 Part.09 安装OpenLDAP Part.10 创建集群 Part.11 安装Kerberos Part.12 安装HDFS Part.13 安装Ranger …

外包干了2个月,技术倒退2年。。。。。

先说一下自己的情况&#xff0c;本科生&#xff0c;20年通过校招进入深圳某软件公司&#xff0c;干了接近4年的功能测试&#xff0c;今年国庆&#xff0c;感觉自己不能够在这样下去了&#xff0c;长时间呆在一个舒适的环境会让一个人堕落!而我已经在一个企业干了四年的功能测试…

现代版“田忌赛马”:IPMT如何实现资源利用最大化

摘要&#xff1a;在流程调整和产品重整过程中&#xff0c;IPMT发挥了至关重要的作用。IPMT是什么&#xff1f;它的职责到底是什么&#xff1f;每个公司必须要有IPMT吗&#xff1f; 1992年&#xff0c;IBM在激烈的市场竞争下&#xff0c;遭遇到了严重的财政困难&#xff0c;利润…

Mysql中RTRIM、LTRIM、TRIM函数的区别

一、概述 在MySQL中&#xff0c;LTRIM、RTRIM和TRIM是用于去除字符串两端空格或指定字符的函数&#xff0c;它们的区别如下&#xff1a; LTRIM()&#xff1a; LTRIM表示"Left Trim"&#xff0c;用于去除字符串左侧的空格或指定字符。语法&#xff1a;LTRIM(str) …

机器学习-ROC曲线:技术解析与实战应用

本文全面探讨了ROC曲线&#xff08;Receiver Operating Characteristic Curve&#xff09;的重要性和应用&#xff0c;从其历史背景、数学基础到Python实现以及关键评价指标。文章旨在提供一个深刻而全面的视角&#xff0c;以帮助您更好地理解和应用ROC曲线在模型评估中的作用。…

Java 多线程之 Semaphore(信号量/限流/同步辅助类)

文章目录 一、概述二、使用方法三、测试示例 一、概述 Semaphore&#xff08;信号量&#xff09;是一种并发控制机制&#xff0c;用于控制对共享资源的访问。它维护了一个计数器&#xff0c;可以限制同时访问某个资源的线程数量。常用于限制同时访问某个资源的线程数量&#xf…

MySQL查看和修改时区

为了验证 TIMESTAMP 存储时间与时区有关&#xff0c;显示的值也依赖于时区 看了mysql 时区 时间网 世界时区 MySQL查看和修改时区的方法 查看当前时区 1. 在MySQL客户端&#xff0c;可以通过如下命令查看当前时区&#xff1a; SELECT global.time_zone;2. 查看当前时区的设…