Flask消息闪烁在重定向中失败

时间:2011-06-01 05:15:28

标签: python google-app-engine flask

我目前正在使用FlaskGoogle 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 个答案:

答案 0 :(得分:10)

我明白了! 诀窍是将服务器名称设置为带点的东西。

所以'localhost'变为'app.local',app.local应该添加到/ etc / hosts,指向与localhost相同的地址。

来自docs

  

请记住,不仅如此   Flask有不知道的问题   您的网络浏览器是什么子域   也一样。大多数现代Web浏览器   不允许跨子域cookie   在没有的服务器名称上设置   在它的点。所以,如果您的服务器名称是   'localhost'你将无法做到   为'localhost'和每个人设置一个cookie   它的子域。请选择一个   在这种情况下,不同的服   比如'myapplication.local'并添加   此名称+您想要的子域名   用于您的主机配置或设置   本地绑定。

答案 1 :(得分:3)

您是否设置了Cookie以在所有子域中工作?

默认情况下,它们只能在设置它们的域中读取