我想将新输入附加到列表SESSION_U而不删除其内容。我试试这个:
...
try:
SESSION_U.append(UNIQUES)
except NameError:
SESSION_U = []
SESSION_U.append(UNIQUES)
...
我认为首先尝试我会创建并附加NameError
和SESSION_U
列表;第二次try
会起作用。但事实并非如此。你知道为什么吗?如果这不清楚,请告诉我,我会发布脚本。感谢。
修改
# save string s submitted from form to list K:
K = []
s = self.request.get('sentence')
K.append(s)
# clean up K and create 2 new lists with unique items only and find their frequency
K = K[0].split('\r\n')
UNIQUES = f2(K)
COUNTS = lcount(K, UNIQUES)
# append UNIQUES and COUNTS TO session lists.
# Session lists should not be initialized with each new submission
SESSION_U.append(UNIQUES)
SESSION_C.append(COUNTS)
如果我在SESSION_U
之后将SESSION_C
和K = []
放在每个提交的内容被删除之后;如果不;我得到NameError
。我正在寻找有关处理这种情况的标准方法的帮助。谢谢。 (我正在使用Google App Engine)
答案 0 :(得分:0)
您发布的代码似乎包含在请求处理程序中。您对此SESSION_U
列表有何要求?显然,您希望在请求之间保留它,但有几种方法可以做到这一点,最佳选择取决于您的要求。
我怀疑您要将SESSION_U
存储在datastore中。您需要使用transaction以原子方式更新列表(因为多个请求可能会尝试同时更新它)。在数据存储区中存储SESSION_U
会使其持久(即,它会在请求中保留)。
或者,如果您不担心会定期丢失列表,则可以使用memcache。您甚至可以将列表存储在全局变量中(由于app caching,它将在特定实例的请求之间保持,并在实例终止时丢失)。