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

news2025/6/8 13:38:07

文件下载保存接口的创建

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

功能描述

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

实现代码

@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.coloradmin.cn/o/1285861.html

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

相关文章

感觉到自己思想扭曲了

突然觉得自己思想有点扭曲。 ​起因是近期备婚&#xff0c;需要给男方家人买衣服。问男朋友妹妹衣服预算多少&#xff0c;说是500内&#xff0c;然后想想自己这个新娘子&#xff0c;那一身衣服绞尽脑汁凑满减不到300。再联想到装饰新房&#xff0c;新房买家具&#xff0c;为了省…

【性能测试】LR录制回放事务检查点

前言 上一次推文我们分享了性能测试分类和应用领域&#xff0c;今天带大家学习性能测试工作原理、事务、检查点&#xff01;后续文章都会系统分享干货&#xff0c;带大家从0到1学会性能测试&#xff0c;另外还有教程等同步资料&#xff0c;文末免费获取~ 01、LR工作原理 ​通…

CentOS或RHEL安装code-server(vscode-web)

下载rpm安装包 网络下载或者下载到本地再上传到服务器&#xff0c;点击访问国内下载地址&#xff0c;不需要积分curl -fOL https://github.com/coder/code-server/releases/download/v4.19.1/code-server-4.19.1-amd64.rpm安装 rpm -i code-server-4.19.1-amd64.rpm关闭和禁用…

配电房一体化环境监控系统

配电房一体化环境监控系统是一种综合运用多种传感器、物联网、云计算、大数据等技术的智能化监控系统&#xff0c;依托电易云-智慧电力物联网&#xff0c;实现对配电房内环境、设备运行状态等信息的实时监测和预警&#xff0c;提高配电房的安全性和可靠性。以下是配电房一体化环…

C //例10.1 从键盘输入一些字符,逐个把它们送到磁盘上去,直到用户输入一个“#”为止。

C程序设计 &#xff08;第四版&#xff09; 谭浩强 例10.1 例10.1 从键盘输入一些字符&#xff0c;逐个把它们送到磁盘上去&#xff0c;直到用户输入一个“#”为止。 IDE工具&#xff1a;VS2010 Note: 使用不同的IDE工具可能有部分差异。 代码块 方法&#xff1a;使用指针&…

CUDA简介, 配置和运行第一个CUDA程序(Windows和Linux)

CUDA简介 CUDA&#xff08;Compute Unified Device Architecture&#xff09;是由NVIDIA开发的一种通用并行计算架构。CUDA允许程序员利用NVIDIA GPU的并行计算能力&#xff0c;加速各种计算密集型应用程序。 CUDA技术基于GPU的并行计算原理。传统的CPU处理器拥有少量的核心&…

Zabbix自定义监控内容

自定义监控客户端服务器登录的人数 需求&#xff1a;限制登录人数不超过 3 个&#xff0c;超过 3 个就发出报警信息 1.在客户端创建自定义key //明确需要执行的 linux 命令 who | wc -l//创建 zabbix 的监控项配置文件&#xff0c;用于自定义 key vim /etc/zabbix/zabbix_ag…

零基础入坑Python爬虫的全面学习指南

文章目录 首先爬虫是什么&#xff1f;1. Python学习2.Python urllib和urllib2 库的用法3.Python 正则表达式4.爬虫框架Scrapy爬虫基本原理关于Python技术储备一、Python所有方向的学习路线二、Python基础学习视频三、精品Python学习书籍四、Python工具包项目源码合集①Python工…

Shopee买家通系统自动下单更方便

Shopee购物平台的买家通系统为用户提供了一种便捷的自动下单方式&#xff0c;通过这一系统&#xff0c;用户可以轻松实现在虾皮平台购买商品的自动化操作。下面将介绍具体的操作流程&#xff0c;确保用户可以顺利完成整个购物流程。 首先&#xff0c;用户需要准备一个可用的虾皮…

(2/2)敏捷实践指南 Agile Practice Guide ([美] Project Management institute 著)

附录 A1 - 《PMBOK指南》映射 表A1显示了第六版《PMBOK指南》中定义的项目管理过程组与知识领域之间的对应关系 本附录说明了如何利用混合和敏捷方法处理《PMBOK指南》知识领域&#xff08;请参见表A1-2&#xff09;中所述的属性&#xff0c;其中涵盖了相同和不同的属性&…

Apollo新版本Beta技术沙龙参会感受:未来的自动驾驶之旅

Apollo新版本Beta技术沙龙参会感受&#xff1a;未来的自动驾驶之旅 &#x1f697;&#x1f4a1; 文章目录 Apollo新版本Beta技术沙龙参会感受&#xff1a;未来的自动驾驶之旅 &#x1f697;&#x1f4a1;摘要引言正文&#x1f4cd; 参会流程介绍&#x1f31f; 参会收获&#x1…

力扣 790. 多米诺和托米诺平铺(一维dp)

题目描述&#xff1a; 有两种形状的瓷砖&#xff1a;一种是 2 x 1 的多米诺形&#xff0c;另一种是形如 "L" 的托米诺形。两种形状都可以旋转。 给定整数 n &#xff0c;返回可以平铺 2 x n 的面板的方法的数量。返回对 109 7 取模 的值。 平铺指的是每个正方形都…

并行流(Parallel Streams)

并行流&#xff08;Parallel Streams&#xff09;是Java 8引入的一种并行处理集合数据的机制&#xff0c;它允许将操作并行化以提高处理速度。然而&#xff0c;并行流可能存在一些安全问题&#xff0c;特别是在多线程环境下。 以下是一些与并行流相关的安全问题&#xff1a; 共…

08、分析测试执行时间及获取pytest帮助

官方用例 # content of test_slow_func.py import pytest from time import sleeppytest.mark.parametrize(delay,(1.1,1.2,1.3,1.4,1.5,1.6,1.7,1.8,1.9,1.0,0.1,0.2,0,3)) def test_slow_func(delay):print("test_slow_func {}".format(delay))sleep(delay)assert…

每日一练 | 华为认证真题练习Day142

1、路由器的主要功能&#xff0c;以下说法错误的是&#xff1f;&#xff08;多选&#xff09; A. 通过多种协议建立路由表 B. 根据路由表指导数据转发 C. 根据收到数据包的源IP地址进行转发 D. 实现相同网段设备之间相互通信 2、管理员发现无法通过TFTP传输文件到华为AR200…

深入学习锁--Lock各种使用方法

一、什么是Lock Lock是一个接口,通常所说的可重入锁是指Lock的一个实现子类ReentrantLock 二、Lock实现步骤&#xff1a; ①创建锁对象Lock lock new ReentrantLock(); ②加锁lock.lock(); ③释放锁lock.unlock(); import java.util.concurrent.locks.Lock; import java.util…

十年数据分析师告诉你,这款国产数据分析工具真的很好用!

今天早上上班的时候经过一同事&#xff0c;看见他正苦大仇深的做着数据分析报告&#xff0c;老李走上前一问才知道&#xff0c;他的EXCEL又双叒罢工了。   数据分析师的核心能力是思维&#xff0c;而次核心能力就是工具。如古人云打仗需要一把趁手的兵器。对于初入行业的数据分…

DBET-6X/200G24-8K4V直动式比例溢流阀放大器

DBETX-1X/50G24-8NZ4M、DBETX-1X/180G24-8NZ4M、DBETX-1X/250G24-8NZ4M、DBETX-1X/315G24-8NZ4M、DBETX-1X/80G24-8NZ4M、DBET-6X/200G24-8K4V直动式比例溢流阀&#xff0c;用来限制系统压力&#xff0c;通过电磁铁控制电流可调节压力&#xff0c;参考特性曲线即使出现电气故障…

一文回顾 Polkadot 跨链技术演进,了解 Polkadot 2.0 的未来

Polkadot 的起源、完善和上线过程经历了怎样的技术迭新与路线升级&#xff1f;深入把握 Polkadot 技术模型与生态合约才能让我们更好地深耕 Polkadot 生态。 11 月 25 日晚上&#xff0c;Substrate Saturday 第 19 期活动如期举行&#xff0c;Parity 工程师 Suvi Dong、Kaicha…

外包干了4年,技术退步明显...

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