Мигание флаговых сообщений не выполняется при переадресации

В настоящее время я работаю над проектом, используя Flask и Google App Engine. Вызов get_flashed_messages() возвращает пустой, когда я запускаю сообщение, а затем redirect():

@views.route('/todo/add', methods=["POST"])
def add_todo():
    flash('hey')
    return redirect(url_for('todo_list')) 

Однако, если я прокомментирую

# SERVER_NAME = 'localhost'

тогда он работает нормально. Моя проблема в том, что я должен использовать субдомены, поэтому мне нужно установить SERVER_NAME.

В чем заключена сделка?

Ответ 1

Я понял! Хитрость заключается в том, чтобы установить имя сервера на что-то с точками.

Итак, "localhost" стал "app.local", а app.local следует добавить в /etc/hosts, указав тот же адрес, что и localhost.

Из docs:

Пожалуйста, имейте в виду, что не только У колготки есть проблема не знать какие субдомены, ваш веб-браузер делает также. Большинство современных веб-браузеров не разрешает куки-перекрестные субдомены для установки на имя сервера без точек в нем. Поэтому, если ваше имя сервера "localhost" вы не сможете установить cookie для "localhost" и каждого субдомен. Пожалуйста, выберите другое имя сервера в этом случае, например, "myapplication.local" и добавить это имя + субдомены, которые вы хотите использовать в вашей конфигурации хоста или настроить локальная привязка.

Ответ 2

Вы настроили файлы cookie для работы во всех поддоменах?

по умолчанию они доступны только для домена, который их устанавливает