web.py使用session时报错AttributeError: 'ThreadedDict' object has no attribute 'logged_in'


web.py使用session时报错AttributeError的解决办法

原文:http://www.zh30.com/web-py-session-attributeerror.html

最近在学习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.最囧的一点:删除之前创建的sessions文件。
上一步中,郑晓设置了将session以文件的形式储存到当前目录下的sessions目录中。所以在上二步确认无问题后,手动将sessions目录中的已存在的文件删除。不删除的话,程序还是使用的旧版session,还会报错- -!

4.have fun!


  • 4
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值