一聚教程网:一个值得你收藏的教程网站

最新下载

热门教程

解决web.py使用session时报错AttributeError问题

时间:2015-04-05 编辑:简简单单 来源:一聚教程网

最近在学习web.py使用session时,经常会遇到AttributeError错误,大体报错内容是:
AttributeError: ‘ThreadedDict’ object has no attribute ‘xxxxx’
网上找的解决办法都是关闭web.py的调试模式,但有时关闭后也会报错,很是郁闷。
最后郑晓摸索出了使用session时需要注意的几点,在这里记录一下:

1. 首先请关闭调试模式:

web.config.debug = False

代码需加到import web后,调用web.application之前,像这样:

import web
web.config.debug = False
urls = ('/', 'index')
app = web.application(urls, globals())

2. 创建session时,加上initializer参数,给你的session设置个默认值,像这样:

session = web.session.Session(app, web.session.DiskStore('sessions'), initializer={'user':None, 'login':None})

按说不加initializer也应该可以使用啊,不知道为什么我不加的话,就会报错,不管你是不是判断了is not None,只要你调用了session.xxx就报错。

3.最?宓囊坏悖荷境??按唇ǖ?essions文件。

上一步中,郑晓设置了将session以文件的形式储存到当前目录下的sessions目录中。所以在上二步确认无问题后,手动将sessions目录中的已存在的文件删除。不删除的话,程序还是使用的旧版session,还会报错- -!

热门栏目