【发布时间】:2016-11-14 14:36:32
【问题描述】:
在过去的一个月里,我一直在构建一个 Web 应用程序,而且事情进展得非常顺利,因为我对这一切是多么陌生。也就是说,直到昨天,当我对页面进行 AJAX 大修时,为用户提供服务器端进程的实时反馈。现在,当我启动应用程序时,我在第一行代码中收到错误(到目前为止没有产生任何问题),我在其中检查会话对象以查看操作是否处于活动状态。
我收到错误:
UnboundLocalError: local variable 'session' referenced before assignment
当我尝试代码时:
if 'active_op' not in session:
print 'bizbaz'
如果之前没有无缝运行,我会认为我对这段代码做错了。我已将我的代码恢复为 AJAX 更新之前的代码,但我仍然收到此错误,即使它昨天使用相同的代码工作。对此的任何指示将不胜感激。正如我所说,尤其是对于 Web 应用程序开发和会话,我还是个新手。显然,我对会话和烧瓶对它们的使用的理解有点偏离,因为我完全不知道为什么这突然停止工作。如果有什么我可以做的来澄清我的问题,请告诉我;我被困住了,直到我弄清楚了。谢谢!
编辑: 我有这段代码试图将字典分配给会话变量。
session = {'foo':'bar'}
【问题讨论】:
-
您将需要显示更多代码。例如,如果 session 是一个模块级变量,但您在函数中的任何位置分配给它,如果您在分配之前尝试读取它,则会收到此错误。
-
谢谢@DanielRoseman。这就是问题所在。我进行了搜索和替换以清理我的一些代码,但我错过了将会话分配给字典的位置。
-
我编辑了您的问题以包含有关“分配给 dict 的会话”的信息。我还将编辑 Sergey 的答案以提及这应该完成答案