文件下载保存接口的创建_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,然后按下回车

示例
在这里插入图片描述
文件下载保存接口的创建_FastAPI_第1张图片

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

你可能感兴趣的:(python,fastapi,python)