文件下载保存接口的创建
- 功能描述
- 实现代码
- 功能演示
功能描述
在网页上对数据进行下载保存处理。例如点击网页上的保存按钮,会把文件下载到本地。下面就是对下载保存功能的实现。
实现代码
@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"
,这样在点击保存按钮的时候会自动打开新页面进行下载操作。