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

本文提供了在使用web.py框架时遇到Session调试问题的解决方案。主要包括关闭调试模式、正确初始化Session、清理旧Session文件等步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


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!


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值