Мигает сообщение Flask не удается через перенаправления - PullRequest
10 голосов
/ 01 июня 2011

В настоящее время я работаю над проектом, используя 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.

Что такое сделка?

Ответы [ 2 ]

10 голосов
/ 02 июня 2011

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

Таким образом, 'localhost' стал 'app.local', а app.local должен быть добавлен в / etc / hosts, указывая на тот же адрес, что и localhost.

Из документов :

Имейте в виду, что проблема не только в том, что Flask не знает, что такое субдомены, но и в вашем веб-браузере.Большинство современных веб-браузеров не позволяют устанавливать файлы cookie между поддоменами на имя сервера без точек в нем.Таким образом, если ваше имя сервера «localhost», вы не сможете установить cookie для «localhost» и каждого его дочернего домена.В этом случае выберите другое имя сервера, например «myapplication.local», и добавьте это имя + субдомены, которые вы хотите использовать, в конфигурацию своего хоста или настройте локальную привязку.

3 голосов
/ 01 июня 2011

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

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

...