Колба с Peewee, получая новые данные только при перезагрузке - PullRequest
0 голосов
/ 12 сентября 2018

У меня очень странная проблема с приложением Flask + Peewee.

У меня есть веб-приложение, которое вставляет данные в базу данных MySQL.

Приложение My Flask также подключается к этой базе данных с помощью peewee.

Проблема заключается в том, что когда я вставляю что-то с веб-приложением. Если я делаю выбор в базе данных в приложении Flask, он возвращает данные, доступные в начале приложения Flask. Чтобы получить новые данные с тем же Select, мне нужно перезапустить службу сервера Flask, чтобы получить новые данные.

Кто-нибудь знает, что происходит?

UPDATE

Я нашел проблему. Это не было напрямую связано с peewee, а с Flask.

У меня есть что-то вроде этого:

def some_method(id, user_id, date_from = datetime.now(), limit = 50):

Кажется, что когда я делаю это, date_from устанавливается с указанием даты и времени компиляции. После этого все запросы, использующие его, всегда используют эту дату и время.

Изменено на это:

def some_method(id, user_id, date_from = None, limit = 50):

   if (date_from is None):
     date_from = datetime.now()

И это начинает работать.

Я делюсь этим для других парней, как я, у которых может быть такая же проблема.

1 Ответ

0 голосов
/ 12 сентября 2018

Это ожидаемое поведение для веб-приложений.HTTP - это протокол без сохранения состояния, это означает, что веб-приложение вашего веб-приложения не может знать, было ли изменено состояние вашего бэкэнда, если оно не выполнит новый запрос.Таким образом, ваши изменения в бэкэнде становятся видимыми только после перезапуска приложения Flask.Зависит от вашего кода, вы, вероятно, также можете увидеть изменения, обновив браузер.

Если вы хотите увидеть изменения немедленно без перезапуска / обновления, узнайте, как использовать Javascript для запроса изменений и обновления внешнего интерфейса DOM.,Вы можете начать изучать jquery или современный фреймворк, такой как React / Vue / Angular.

...