Connection time out - база данных удаляет внесенные данные

Рейтинг: 0Ответов: 0Опубликовано: 05.07.2023

Разрабатываю веб-приложение, в котором очень нужна динамическая база данных, чтобы даже после перезагрузки страницы/компьютера/вселенной все внесенные данных сохранились без потерь, чтобы можно было непосредственно в момент работы с приложением, уже на хостинге, заносить в нее новые вещи, удалять что-то и сохранять эти изменения. Уже дважды в БД было внесено больше ста позиций, затем появлялась надпись "Connection time out" и все данные пропадали. Мне порекомендовали вот такой код:

import sqlite3


def connection(db_name):
    return sqlite3.connect(db_name)



def create_table(table):
    q = connection('data.db')
    q.execute(f'CREATE TABLE IF NOT EXISTS {table}(name TEXT, nic TEXT, mgs INT,'
              'flavor TEXT, specifics TEXT, menthol TEXT)')
    q.commit()
    q.close()


def add_data(table, name, nic, mgs, flavor, specifics, menthol):
    q = connection('data.db')
    q.execute(f'INSERT INTO {table}(name, nic, mgs, flavor, specifics, menthol)'
              'VALUES (?,?,?,?,?,?)', (name, nic, mgs, flavor, specifics, menthol))
    q.commit()
    q.close()


def sel(table, one, two, three, four, five):
    q = connection('data.db')
    data = q.execute(f'''SELECT name FROM {table} WHERE nic=? and mgs= ? and flavor= ? and specifics=?
     and menthol=?''', (one, two, three, four, five)).fetchall()
#    data = q.fetchall()
    q.close()
    return data


def view_all_data(table):
    q = connection('data.db')
    result = q.execute(f'SELECT * from {table}').fetchall()
#    result = q.fetchall()
    q.commit()
    q.close()
    return result


def view_part_data(table):
    q = connection('data.db')
    parted = q.execute(f'SELECT name FROM {table}').fetchall()
#    parted = q.fetchall()
    q.commit()
    q.close()
    return parted


def deleting(table, liq):
    q = connection('data.db')
    q.execute(f'DELETE FROM {table} WHERE name=?', (liq))
    q.commit()``
    q.close()

Что может быть не так?

Ответы

Ответов пока нет.