Как загрузить мой CSV-файл в базу данных только один раз (flask -sqlalchemy)? - PullRequest
0 голосов
/ 10 января 2020

Я использую flask 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 => не загружается, как это сделать?

Ответы [ 2 ]

0 голосов
/ 10 января 2020

Я нашел решение, которое я опубликую здесь, если кому-то когда-нибудь понадобится.

Мне нужно просто проверить, существует ли таблица в базе данных с

if not engine.has_table("table_name"):
`table_name = Table('tbl_name',
 Column('id, Integer, primary_key=True),
 Column('name', Strin, nullable=True))

`

0 голосов
/ 10 января 2020

Перед вставкой данных вы можете удалить таблицу, если она существует:

engine.execution_options(isolation_level="AUTOCOMMIT").execute('DROP TABLE IF EXISTS table_name')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...