我在init方法中将一个变量设置为空列表。然后,在get方法中,查询数据库并设置列表。接下来,在post方法中,我尝试使用变量。但是,由于某种原因,当我的post方法运行时,变量被设置回一个空列表(这可能完全是意料之中的?)。你能帮我找出我做错了什么吗?或者告诉我有没有别的办法
谢谢
class thisHandler(BaseHandler):
def __init__(self, *args, **kwargs):
super(thisHandler, self).__init__(*args, **kwargs)
self.topList= []
def get(self, id):
if self.user:
#Other stuff happens
self.topList = get_myList(id) #This is definitely returning a populated list as it displays just fine on my page
#Other stuff happens
self.render('page.html', variables)
def post(self, id):
#Other stuff happens
system.debug(self.topList) #this comes back empty. this is the first reference to it in the post method
#Other stuff happens
无论何时使用方法
get
或set
,始终坚持它们的含义。从不在get方法中设置/更新任何变量,也从不从set方法返回任何值。我见过很多人这样做正确的方法:
话虽如此,在转到
post()
方法之前,您需要调用方法self.get()
。这有助于更新值没有在同一执行线程中调用这些方法。实例数据是线程本地的。如果希望数据从一个远程调用持续到下一个远程调用,则需要在服务器端存储会话数据,使用某种类型的cookie来标识从一个调用到下一个调用的客户端会话
相关问题 更多 >
编程相关推荐