会话变量在递增时不会改变
Session variable doesn't change when it's incremented
我有一个按顺序提问的聊天机器人。为了跟踪问题,我使用了一个计数器,它是一个会话variable.But,当我增加会话[counter']时,它不会改变。
这是逻辑。即使这段代码有效,我也不确定为什么当我为我的机器人实现相同的逻辑时,它不起作用。
question_dict = {
'Locq0':[{'question':"Some question 0",'options':(["Continue","@continue"])}],
'Locq1':[{'question':"Some question 1",'options':(["Continue","@continue"])}],
'Locq2':[{'question':"Some question 2",'options':(["Continue","@continue"])}],
}
def main():
session['counter'] = 0
if user_payload == "@continue":
increment()
def increment():
if session['counter'] <= len(question_dict):
session['counter'] += 1
quiz(session['counter'])
def quiz(counter):
question = question_dict['Locq{}'.format(counter)][0]['question']
option = question_dict['Locq{}'.format(counter)][0]['options']
# display the question and option
print(question)
print(option)
回到机器人。当用户第一次使用机器人时,会创建一个会话变量 session['counter']
并将其初始化为 0。然后机器人开始提问,要移动到下一个问题,它应该递增 session['counter'] +=1
。但这并没有发生,即使调用了 increment() 函数,session['counter']
始终为 0。
我是不是做错了什么?或者有什么合适的方法吗?此应用程序使用 Flask 提供。
我想是因为main方法调用的时候报错了。尝试先初始化字典,然后递增它。
以下代码抛出错误
def main():
session['counter'] = 0
if user_payload == "@continue":
increment()
试试下面的代码
def main():
session = {'counter':0}
if user_payload == "@continue":
increment()
我有一个按顺序提问的聊天机器人。为了跟踪问题,我使用了一个计数器,它是一个会话variable.But,当我增加会话[counter']时,它不会改变。
这是逻辑。即使这段代码有效,我也不确定为什么当我为我的机器人实现相同的逻辑时,它不起作用。
question_dict = {
'Locq0':[{'question':"Some question 0",'options':(["Continue","@continue"])}],
'Locq1':[{'question':"Some question 1",'options':(["Continue","@continue"])}],
'Locq2':[{'question':"Some question 2",'options':(["Continue","@continue"])}],
}
def main():
session['counter'] = 0
if user_payload == "@continue":
increment()
def increment():
if session['counter'] <= len(question_dict):
session['counter'] += 1
quiz(session['counter'])
def quiz(counter):
question = question_dict['Locq{}'.format(counter)][0]['question']
option = question_dict['Locq{}'.format(counter)][0]['options']
# display the question and option
print(question)
print(option)
回到机器人。当用户第一次使用机器人时,会创建一个会话变量 session['counter']
并将其初始化为 0。然后机器人开始提问,要移动到下一个问题,它应该递增 session['counter'] +=1
。但这并没有发生,即使调用了 increment() 函数,session['counter']
始终为 0。
我是不是做错了什么?或者有什么合适的方法吗?此应用程序使用 Flask 提供。
我想是因为main方法调用的时候报错了。尝试先初始化字典,然后递增它。
以下代码抛出错误
def main():
session['counter'] = 0
if user_payload == "@continue":
increment()
试试下面的代码
def main():
session = {'counter':0}
if user_payload == "@continue":
increment()