Vue前端 向 后端Flask 传文件数据并保存

简介

采用vue 编写前端,上传图像文件,发送到后端flask,由后端保存

前端代码

<template>
<input class="file" name="file" type="file" accept="image/png,image/gif,image/jpeg" @change="update"/>
</template>
<script>
export default {
   
   
methods: {
   
   
以下是前端使用Vue 3、后端使用Flask实现下载Excel文件功能的详细方法: ### 后端Flask实现 首先,需要安装必要的库,如`Flask`和`pandas`(用于生成Excel文件)。可以使用以下命令进行安装: ```bash pip install Flask pandas openpyxl ``` 以下是一个简单的Flask示例代码: ```python from flask import Flask, send_file import pandas as pd import io app = Flask(__name__) @app.route('/download_excel', methods=['GET']) def download_excel(): # 示例数据 data = { 'Name': ['Alice', 'Bob', 'Charlie'], 'Age': [25, 30, 35] } df = pd.DataFrame(data) # 创建一个内存中的Excel文件 output = io.BytesIO() writer = pd.ExcelWriter(output, engine='openpyxl') df.to_excel(writer, sheet_name='Sheet1', index=False) writer.close() output.seek(0) # 发送文件给客户端 return send_file( output, as_attachment=True, download_name='example.xlsx', mimetype='application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' ) if __name__ == '__main__': app.run(debug=True) ``` 在上述代码中,定义了一个`/download_excel`的路由,当客户端访问该路由时,会生成一个包含示例数据的Excel文件将其发送给客户端进行下载。 ### 前端Vue 3实现 在Vue 3项目中,可以使用`axios`库来发送请求。首先,安装`axios`: ```bash npm install axios ``` 以下是一个简单的Vue 3组件示例: ```vue <template> <button @click="downloadExcel">下载Excel文件</button> </template> <script setup> import axios from 'axios'; const downloadExcel = async () => { try { const response = await axios.get('http://127.0.0.1:5000/download_excel', { responseType: 'blob' }); const url = window.URL.createObjectURL(new Blob([response.data])); const link = document.createElement('a'); link.href = url; link.setAttribute('download', 'example.xlsx'); document.body.appendChild(link); link.click(); document.body.removeChild(link); } catch (error) { console.error('下载失败:', error); } }; </script> ``` 在上述代码中,定义了一个按钮,当点击按钮时,会发送一个GET请求到Flask后端的`/download_excel`路由。接收到响应后,会创建一个临时的URL,通过创建一个`<a>`标签来触发文件下载。 ### 总结 通过以上步骤,就可以实现前端Vue 3与后端Flask实现下载Excel文件的功能。后端负责生成Excel文件发送给客户端,前端负责发送请求处理下载操作。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值