Size: a a a

2020 May 06

E

Eldar in Python Flask
ну так все верно
источник

A

Alex in Python Flask
ну да, это нормально. что не так? ты добавил изменения в сессию, при следующем запросе вызвался flush.
источник

T

Tishka17 in Python Flask
Eldar
Что не так?

- Я добавялю в сессию записи.
- Проверяю, не пустая ли сессия.
- Делаю коммит.
Правильная логика:
1. Ты добавляешь в сессию записи
2. Говоришь сессии "сохрани всё"

Неправильная:
1. Ты добавляешь в сессию записи
2. Проверяешь внутреннее состояние сессии
3. Говоришь сессии "сохрани всё"
источник

E

Eldar in Python Flask
ну так 2 пункт смущает вас так?
источник

T

Tishka17 in Python Flask
да
источник

A

Alex in Python Flask
Eldar
ну так все верно
блядь. они у тебя перестают быть "новыми", когда алхимия отправляет эти запросы в базу.
источник

E

Eldar in Python Flask
а в чем проблема с проверкой может быть?
причем она не влияет на коммит
источник

A

Alex in Python Flask
Eldar
а в чем проблема с проверкой может быть?
причем она не влияет на коммит
в том что ты не понимаешь что такое session.new и используешь ее не по назначению.
источник

T

Tishka17 in Python Flask
Eldar
а в чем проблема с проверкой может быть?
причем она не влияет на коммит
Какая тебе разница в каком состоянии объект по мнению сессии?
источник

A

Alex in Python Flask
after_flush_postexec()

The Session.new, Session.dirty and Session.deleted collections are normally completely empty here.
источник

T

Tishka17 in Python Flask
Eldar
а в чем проблема с проверкой может быть?
причем она не влияет на коммит
Давай начнем с простого: какая разница между flush и commit?
источник

E

Eldar in Python Flask
флаш шлет изменения в бд но не записывает их.
источник

E

Eldar in Python Flask
в коммит включен флаш
источник

T

Tishka17 in Python Flask
что значит "не записывает"?
источник

E

Eldar in Python Flask
источник

A

Alex in Python Flask
Eldar
флаш шлет изменения в бд но не записывает их.
когда вызывается flush()?
источник

E

Eldar in Python Flask
выше послал
источник

A

Alex in Python Flask
Eldar
выше послал
нет
источник

A

Alex in Python Flask
не только
источник

A

Alex in Python Flask
Eldar
выше послал
документацию мы читать умеем, ты очевидно нет.

autoflush – When True, all query operations will issue a Session.flush() call to this Session before proceeding. This is a convenience feature so that Session.flush() need not be called repeatedly in order for database queries to retrieve results. It’s typical that autoflush is used in conjunction with autocommit=False. In this scenario, explicit calls to Session.flush() are rarely needed; you usually only need to call Session.commit() (which flushes) to finalize changes.
источник