我一直在爲過去的一個月構建一個Web應用程序,並且事情已經出人意料地順利地實現了新的我對所有這些。也就是說,直到昨天,當我在頁面上進行AJAX檢修時,才向用戶提供服務器端進程的實時反饋。現在,當我啓動應用程序時,在我的第一行代碼(到目前爲止沒有產生任何問題)中出現錯誤,我檢查會話對象以查看操作是否處於活動狀態。Flask會話變量不允許分配
我收到錯誤:
UnboundLocalError: local variable 'session' referenced before assignment
當我嘗試代碼:
if 'active_op' not in session:
print 'bizbaz'
我本來以爲我是做錯了這個代碼,如果它沒有無縫工作之前。我已經將我的代碼恢復到了AJAX更新之前的版本,並且仍然出現此錯誤,即使它昨天使用相同的代碼也是如此。任何指針,將不勝感激。正如我所說的,特別是,我對Web應用程序開發和會話仍然很陌生。顯然,我對課程和燒瓶使用這些課程的理解有點偏差,因爲我完全難以理解它爲什麼會突然停止工作。請告訴我是否有任何事情可以澄清我的問題;我被卡住了,直到我弄明白了。謝謝!
編輯: 我有這個代碼試圖分配一個字典到會話變量。
session = {'foo':'bar'}
你將需要表現出更多的代碼。例如,如果session是一個模塊級別的變量,但是在函數中的任何位置分配它,如果您嘗試在賦值之前讀取它,則會出現此錯誤。 –
謝謝@DanielRoseman。這是問題所在。我做了搜索和替換來清理我的一些代碼,並且我錯過了一個會話被分配給字典的地方。 – SheffDoinWork
我編輯了您的問題,以包含有關「會話分配給字典」的信息。我也將編輯從謝爾蓋的答案,提到這應該完成答案 – codegeek