我已经向gae会话库添加了一些功能,这样我就可以拥有flash数据;也就是说,数据只存在于某个用户的两个请求之间。下面是我添加的代码:
def set_flashdata(key,val=None):
logging.info('set flashdata '+key+'='+val )
sess = get_current_session()
if val:
sess['flash_'+key]=val
return
for x in key:
sess['flash_'+x]=key[x]
def get_flashdata():
sess = get_current_session()
flash = {}
for key in sess:
if(key.startswith("flash_")):
flash[key[6:]]=sess.pop(key)
logging.info('received flashdata '+key+'='+sess[key])
logging.info('fetched '+str(len(flash))+' flash items')
return flash
def has_flashdata():
sess = get_current_session()
for key in sess:
if key.startswith('flash_'):
return True
return False
但当我运行get\u flashdata时,我得到了:
File "/Users/frederikcreemers/Documents/projects/web/myproject/gaesessions/__init__.py", line 533, in get_flashdata
logging.info('received flashdata '+key+'='+sess[key])
File "/Users/frederikcreemers/Documents/projects/web/myproject/gaesessions/__init__.py", line 393, in __getitem__
return self.data.__getitem__(key)
KeyError: 'flash_msg_type'
所以,程序说key mgèu类型不在sess中,但是因为我在迭代sess的键,所以它一定在那里。你知道吗
在上面的一行中,您调用了
pop
,它从字典中删除了该项。你知道吗相关问题 更多 >
编程相关推荐