Flask会话变量无法赋值

3 投票
1 回答
3026 浏览
提问于 2025-04-17 21:10

我最近在做一个网页应用,已经有一个月了,感觉进展得还不错,毕竟我对这些东西还很陌生。可是昨天我对一个页面进行了AJAX的改造,目的是让用户能实时看到服务器处理的反馈。结果现在我启动应用时,第一行代码就出错了(这行代码之前一直没问题),我是在检查会话对象,看看是否有操作正在进行。

我遇到的错误是:

UnboundLocalError: local variable 'session' referenced before assignment

当我尝试运行以下代码时:

if 'active_op' not in session:
    print 'bizbaz'

如果这段代码之前一直能正常工作,我本来会以为是我哪里写错了。但我把代码恢复到AJAX更新之前的样子,结果还是出现这个错误,尽管昨天用同样的代码是没问题的。对此如果能给我一些建议,我会非常感激。正如我说的,我对网页应用开发和会话的理解还不够深入。看来我对会话和Flask的使用理解得有点偏差,因为我完全搞不懂为什么这突然就不工作了。如果有什么我可以做的来澄清我的问题,请告诉我;我在这里卡住了,直到弄清楚这个问题。谢谢!

编辑: 我之前有一段代码,试图把一个字典赋值给会话变量。

session = {'foo':'bar'}

1 个回答

6

确保在使用会话之前先导入它

from flask import session

编辑

主要的问题是你把一个字典赋值给了'session'这个变量,这是不应该的。

# Incorrect
session = {'foo':'bar'}

应该这样做

session['foo'] = 'bar'

撰写回答