我目前正在使用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。
交易是什么?
答案 0 :(得分:10)
我明白了! 诀窍是将服务器名称设置为带点的东西。
所以'localhost'变为'app.local',app.local应该添加到/ etc / hosts,指向与localhost相同的地址。
来自docs:
请记住,不仅如此 Flask有不知道的问题 您的网络浏览器是什么子域 也一样。大多数现代Web浏览器 不允许跨子域cookie 在没有的服务器名称上设置 在它的点。所以,如果您的服务器名称是 'localhost'你将无法做到 为'localhost'和每个人设置一个cookie 它的子域。请选择一个 在这种情况下,不同的服 比如'myapplication.local'并添加 此名称+您想要的子域名 用于您的主机配置或设置 本地绑定。
答案 1 :(得分:3)
您是否设置了Cookie以在所有子域中工作?
默认情况下,它们只能在设置它们的域中读取