Как отслеживать изменение состояния флажка в Flask

0
задан davidism 13 July 2018 в 16:42
поделиться

1 ответ

Есть 2 вещи, которые не очень хороши в этом подходе к проблеме. 1) Вы используете якорный тег для выбора флажка. 2) Вы используете GET-вызов для переключения на ваших маршрутах, где он должен быть PUT или POST.

Если вы не хотите использовать Javascript и хотите использовать только python и HTML, я бы рекомендовал использовать ваш HTML-форму. WTForms - инструмент хорошей формы для фляжки, который должен помочь вам в этом. Когда вы отправляете форму, ваш бэкэнд (python) должен принимать POST-вызов, который обновляет идентификатор в базе данных и может перенаправлять обратно на страницу.

Если вы не хотите кнопку отправки, и вы не Не используйте javascript. Я бы рекомендовал создать прослушиватель onClick с помощью библиотеки jQuery или реагировать и отправить запрос PUT на ваш сервер, который попадает на ваш маршрут toggle_status. Таким образом, вам даже не нужно делать перенаправление, ваш интерфейс может синхронизироваться с бэкэнд при выполнении асинхронных вызовов. Вот руководство по выполнению вызовов AJAX https://www.airpair.com/js/jquery-ajax-post-tutorial

Почему вы должны использовать POST, PUT или GET? вот хороший блог, отвечая на этот вопрос: http://blog.teamtreehouse.com/the-definitive-guide-to-get-vs-post

1
ответ дан Peter Graham 17 August 2018 в 12:27
поделиться
  • 1
    Спасибо, я попробовал это с помощью JQuery / POST, toggle_status попал, и БД изменено, но страница не перерисовывается, если я не обновляю браузер. Любая идея почему? РЕДАКТИРОВАТЬ: Кажется, немного взломать, но location.reload (); в конце js функции работает. – Zach Cleary 13 July 2018 в 18:02
  • 2
    Флажок касается только действий, которые попадают на его маршруты. Это делает только то, что вы говорите. Таким образом, если вы нажмете маршрут POST, он обновится в db и вернет вам информацию в ответ. Единственный способ, которым фляжка будет отображать страницу для вас, - это перезагрузка или перенаправление. Способ обновления страницы - использовать информацию, полученную из ответа POST, и использовать JavaScript для обновления страницы самостоятельно. – Peter Graham 15 July 2018 в 14:15
Другие вопросы по тегам:

Похожие вопросы: