#python #sqlite
#python #sqlite
Вопрос:
Итак, как описано в названии, python не фиксируется в базе данных, даже если я попрошу его
Следующий код я использую для вставки в базу данных:
try:
get_db().execute("insert into Profesor(DNI, NombreApellidos, Telefono, Email, Ranking) values(?,?,?,?,?)", [dni, nombre, telefono, email, ranking])
get_db().commit()
get_db().close()
return "OK"
except:
return "Algo ha fallado insertando los datos, intentelo de nuevo"
get_db() — это функция, которая выполняет соединение с:
def get_db():
db = sqlite3.connect("database.db)
return db
К сожалению, каждый раз, когда я проверяю таблицу, она не возвращается с зафиксированным результатом, ни через мою функцию python, ни из терминала. Но если я вставляю данные выше через терминал, он работает нормально, когда я проверяю из командной строки, он показывает новые добавленные данные, и моя функция python также отображает новые добавленные данные.
Единственное решение, которое я нашел до сих пор, — это добавление isolation_level=None при подключении
Что я делаю не так до сих пор? 🙁
Комментарии:
1.
get_db()
возвращает новое соединение каждый раз, когда вы его вызываете, поэтому.execute()
вызов не работает с тем же соединением,.commit()
что и вызов. Вызовите get_db только один раз и повторно используйте это соединение для всех операций.2. О, так глупо с моей стороны! Не думал об этом
Ответ №1:
Как справедливо указал @John Gordon, это было вызвано тем, что я открывал новое соединение каждый раз, когда вызывал get_db(). Решается с помощью предложенного им решения