【发布时间】:2020-10-17 15:22:28
【问题描述】:
我尝试将 csv 文件上传到数据库。但是,当我上传时,它只会将第一个数据返回到数据库中。我希望它返回 csv 文件中的每一行,但我不知道该怎么做。有人可以帮我吗?
下面是我写的代码:
models.py
from app import db
class details(db.Model):
#Columns
id = db.Column(db.Integer, primary_key = True, autoincrement=True)
Name = db.Column(db.String(120), nullable=False)
Email = db.Column(db.String(120), unique= True, nullable=False)
Address = db.Column(db.Text, nullable=False)
def __init__(self, Name, Email, Address):
self.Name = Name
self.Email= Email
self.Address = Address
上传.py
from app.models import details
import csv
from io import TextIOWrapper
def uploadCSV():
upload = request.files.get('upload')
csv_file = TextIOWrapper(upload, encoding='utf-8')
csv_reader = csv.DictReader(csv_file, delimiter=',')
for data in csv_reader:
name = data['name']
email = data['email']
address = data['address']
query = details(Name = name, Email= email, Address = address)
db.session.add(query)
db.session.commit()
return "upload"
【问题讨论】:
标签: python mysql csv flask sqlalchemy