首页 > 解决方案 > 如何仅一次将我的 csv 文件加载到我的数据库中(flask-sqlalchemy)?

问题描述

我正在使用烧瓶 sqlalchemy 将数据从 csv 加载到我的数据库中,并将其显示在我的 html 页面上。

tbperson = Table('tbpersonen',
          Column('id', Integer, primary_key=True),
          Column('Name', Integer, nullable=True)

with open('Personencsv.csv','r') as csfile:
   csv_reader = csv.reader(csvfile, delimiter=';')
   engine.execute(
       insert query,[{"Name" : row[0]})

问题是。每次我实现我的 html 页面时,文件都会再次加载。然后我有双倍的数据量。如何只上传一次。我试过@app.before_first_request了,但我没有工作。如果 True => 不加载,我必须以某种方式检查我的数据库中是否已经存在同一个文件,该怎么做?

标签: pythoncsvflaskflask-sqlalchemy

解决方案


在插入数据之前,您可以删除表(如果存在):

engine.execution_options(isolation_level="AUTOCOMMIT").execute('DROP TABLE IF EXISTS table_name')

推荐阅读