从网页上传csv文件,并导入MySQL指定数据表,解决思路及完整代码举例
时间: 2024-01-08 09:02:01 浏览: 69
解决思路:
1. 在前端页面中使用文件上传组件,将csv文件上传至服务器;
2. 服务器端接收到上传的文件后,使用Python的pandas库读取csv文件数据;
3. 将读取到的数据插入到MySQL指定的数据表中。
完整代码:
前端页面:
```html
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>上传csv文件</title>
</head>
<body>
<form enctype="multipart/form-data" method="post" action="/upload">
<input type="file" name="file">
<input type="submit" value="上传">
</form>
</body>
</html>
```
后端代码:
```python
from flask import Flask, request
import pandas as pd
import pymysql
app = Flask(__name__)
# MySQL连接配置
mysql_config = {
"host": "localhost",
"user": "root",
"password": "123456",
"db": "test"
}
@app.route('/')
def index():
return '''
<form enctype="multipart/form-data" method="post" action="/upload">
<input type="file" name="file">
<input type="submit" value="上传">
</form>
'''
@app.route('/upload', methods=['POST'])
def upload():
# 获取上传的文件
file = request.files['file']
# 读取csv文件数据
data = pd.read_csv(file)
# 连接MySQL数据库
conn = pymysql.connect(**mysql_config)
cursor = conn.cursor()
# 插入数据到MySQL表中
for i in range(len(data)):
sql = "insert into user (name, age, gender) values (%s, %s, %s)"
cursor.execute(sql, (data.iloc[i]['name'], data.iloc[i]['age'], data.iloc[i]['gender']))
conn.commit()
cursor.close()
conn.close()
return '上传成功'
if __name__ == '__main__':
app.run()
```
在这个例子中,我们使用了Flask作为Web框架,pandas库用于读取csv文件数据,pymysql库用于连接MySQL数据库并插入数据。在代码中,我们首先在前端页面中使用文件上传组件将csv文件上传至服务器,然后在后端代码中读取csv文件数据并插入到MySQL指定的数据表中。
阅读全文