Объект жизненного цикла вспоминает
Мы можем вставить новые записи в базу данных, используя SQLalchemy бежать.
человек (имя = ‘amr’)
db.session.add (человек)
db.session.commit ()
Что будет создавать транзакцию для вставки в экземпляр человека в нашей модели/таблице и сохранять его в базу данных при вызове Commit ().
db.session:
Это не до тех пор, пока мы не выполним db.session (), что мы получаем что-нибудь в базу данных.
Каждый раз, когда мы хотим взаимодействовать с базой данных, мы запускаем соединение и завершите соединение, когда все взаимодействия выполняются.
В этом сеансе взаимодействия мы завели создание транзакций, которые мы примите к базе данных каждый раз, когда мы хотим совершить работу в базе данных.
Так что важно иметь в виду:
Предлагаемые изменения базы данных не немедленно привержены к базе данных после определения.
Изменения проходят через этапы, чтобы обеспечить способность «отменить» ошибку.
прежде чем совершить его в базу данных.
Есть 4 этапа:
1- переходный.
2- в ожидании.
3-летний.
4- совершенный.
Что такое вспомогательный:
Flush — это событие, которое занимает ожидание и переводит их в команды SQL, готовые к привержению в базе данных.
Вставках, флеш позволяет (будущее) основных значений ключей к существующим.
Не то же самое, что и коммит.
Ничто не сохраняется в базе данных, пока произойдет флеш.
Нам до сих пор надо вручную призывать совершение для совершения.
Флеш принимает в ожидании изменения и переводит их в команды, готовые к совершенным. Такое случается:
Когда вы называете запрос. Или
на db.session.commit ()
Офис приводит к сохранению изменений в базе данных + позволяет DB. Начните с новой транзакции.
Когда заявление уже было покрашено, SQLalchemy Знает не делать работу снова о переводах действий в операторы SQL.
Объясните четыре этапа:
1- Переходный: существует объект, он был определен.
user1 (name = ‘amr’)
… Но не привязан к сеансу (пока).
2- Ожидание: объект был прикреплен к сеансу.
… «Отмена» становится доступной через DB.Session.Rollback ().
… Ждет, чтобы произойти смыть.
3 — покрасна: о том, чтобы быть приверженным в базе данных, перевод действий в SQL
… С заявлениями команд для двигателя.
4- Сделано: вручную призвал к изменению для сохранения базы данных (постоянно);
… Транзакция сессии очищена для нового набора изменений.
Резюме:
В сеансе мы создаем транзакции каждый раз, когда мы хотим совершить работу в базе данных.
Предлагаемые изменения не сразу привержены базе данных и вместо этого проходят этапы, чтобы допустить обновления.
Способность отменить разрешенную через DB.Session.Rollback ().
Главный блог Отказ
Оригинал: «https://dev.to/mahmoudessam/sqlalchemy-object-lifecycle-4k1i»