用户在前端网页导入csv文件到MySQL数据库的简单方法,及完整代码举例
时间: 2024-02-19 22:02:46 浏览: 224
为了将前端上传的CSV文件导入到MySQL数据库中,我们可以采用以下步骤:
1. 前端上传CSV文件并将其转换为可读取的格式(如JSON)。
2. 后端接收CSV文件并将其转换为MySQL数据库可识别的格式(如SQL插入语句)。
3. 后端将转换后的数据插入到MySQL数据库中。
下面是一个简单的完整代码举例:
前端代码:
```html
<form action="/upload" method="post" enctype="multipart/form-data">
<input type="file" name="csvfile">
<button type="submit">上传</button>
</form>
```
后端代码:
```python
import csv
import MySQLdb
from flask import Flask, request
app = Flask(__name__)
app.config['MYSQL_HOST'] = 'localhost'
app.config['MYSQL_USER'] = 'root'
app.config['MYSQL_PASSWORD'] = 'password'
app.config['MYSQL_DB'] = 'mydatabase'
@app.route('/upload', methods=['POST'])
def upload():
csvfile = request.files['csvfile']
if not csvfile:
return '没有上传文件!'
stream = csvfile.stream
try:
stream.seek(0)
csv_data = csv.DictReader(stream)
db = MySQLdb.connect(host=app.config['MYSQL_HOST'], user=app.config['MYSQL_USER'], password=app.config['MYSQL_PASSWORD'], db=app.config['MYSQL_DB'])
cursor = db.cursor()
for row in csv_data:
cursor.execute("INSERT INTO mytable (column1, column2, column3) VALUES (%s, %s, %s)", (row['column1'], row['column2'], row['column3']))
db.commit()
cursor.close()
db.close()
return '成功导入数据!'
except Exception as e:
return str(e)
if __name__ == '__main__':
app.run()
```
在上面的代码中,我们使用了Flask框架来处理HTTP请求,并使用了csv和MySQLdb库来处理CSV文件和MySQL数据库。在上传CSV文件时,我们使用了POST方法,并将文件名称设置为'csvfile'。在后端代码中,我们读取了上传的CSV文件并将其转换为MySQL数据库可识别的格式。最后,我们将转换后的数据插入到MySQL数据库中。
阅读全文