山茶花开时。 2023-07-06 15:24 采纳率: 55.6%
浏览 45
已结题

Flask文件传输问题

问题1:如何使用flask接收前端传送过来的的Excel文件并将Excel文件数据导入到数据库Mysql中进行存储?
问题2:如何将存储在Mysql数据库中的数据以JSON格式传回给前端?

  • 写回答

2条回答 默认 最新

  • 大师兄6668 Python领域新星创作者 2023-07-06 15:38
    关注

    问题1.
    1.在Flask应用程序中,使用request.files获取上传的文件对象,并保存到本地。

    from flask import Flask, request
    app = Flask(__name__)
    
    @app.route('/upload', methods=['POST'])
    def upload_file():
        file = request.files['file']
        file.save('path/to/save/file.xlsx')
        return 'File uploaded successfully'
    
    

    2.使用pandas库读取Excel文件中的数据。

    import pandas as pd
    
    data = pd.read_excel('path/to/save/file.xlsx')
    
    

    3.使用pymysql库连接到MySQL数据库,并将数据插入到数据库中。

    import pymysql
    
    # 连接到MySQL数据库
    conn = pymysql.connect(host='localhost', user='your_username', password='your_password', database='your_database')
    
    # 创建游标对象
    cursor = conn.cursor()
    
    # 使用循环遍历处理后的Excel数据,执行插入操作
    for row in data.iterrows():
        # 获取每一行数据并执行插入语句
        insert_query = f"INSERT INTO your_table_name (column1, column2, ...) VALUES (%s, %s, ...)"
        cursor.execute(insert_query, tuple(row))
    
    # 提交事务并关闭游标和连接
    conn.commit()
    cursor.close()
    conn.close()
    
    

    问题2:

    1.查询MySQL数据库中的数据。

    import pymysql
    from flask import jsonify
    
    # 连接到MySQL数据库
    conn = pymysql.connect(host='localhost', user='your_username', password='your_password', database='your_database')
    
    # 创建游标对象
    cursor = conn.cursor()
    
    # 执行查询语句,获取数据
    select_query = "SELECT * FROM your_table_name"
    cursor.execute(select_query)
    
    # 获取所有行数据
    result = cursor.fetchall()
    
    # 关闭游标和连接
    cursor.close()
    conn.close()
    
    

    2.将查询结果转换为JSON格式。

    # 转换查询结果为列表字典格式
    data = []
    columns = [column[0] for column in cursor.description]
    for row in result:
        data.append(dict(zip(columns, row)))
    
    # 将数据转换为JSON格式
    json_data = jsonify(data)
    return json_data
    
    

    3.在Flask应用程序中定义路由,将JSON数据返回给前端。

    @app.route('/data', methods=['GET'])
    def get_data():
        # 查询MySQL数据库中的数据并转换为JSON格式
        # ...
    
        return json_data
    
    

    此处定义的路由是/data,当前端访问/data路由时,将返回存储在MySQL数据库中的数据以JSON格式。
    按照这些步骤就可以解决你的问题,你看还有哪些地方不明白,可以继续交流。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 7月14日
  • 已采纳回答 7月6日
  • 创建了问题 7月6日

悬赏问题

  • ¥15 请分析一下这个电路设计的优点🙏
  • ¥15 求视频摘要youtube和ovp数据集
  • ¥15 怎么改成输入一个要删除的数后现实剩余的数再输入一个删除的数再现实剩余的数用yes表示继续no结束程序
  • ¥15 在启动roslaunch时出现如下问题
  • ¥15 汇编语言实现加减法计算器的功能
  • ¥20 关于多单片机模块化的一些问题
  • ¥30 seata使用出现报错,其他服务找不到seata
  • ¥35 引用csv数据文件(4列1800行),通过高斯-赛德尔法拟合曲线,在选取(每五十点取1点)数据,求该数据点的曲率中心。
  • ¥20 程序只发送0X01,串口助手显示不正确,配置看了没有问题115200-8-1-no,如何解决?
  • ¥15 Google speech command 数据集获取