web.py使用session時(shí)報(bào)錯(cuò)AttributeError的解決辦法
作者: 鄭曉 分類(lèi): Python 發(fā)布于: 2015-03-21 10:10 瀏覽:8,544 評(píng)論(7)
最近在學(xué)習(xí)web.py使用session時(shí),經(jīng)常會(huì)遇到AttributeError錯(cuò)誤,大體報(bào)錯(cuò)內(nèi)容是:
AttributeError: ‘ThreadedDict’ object has no attribute ‘xxxxx’
網(wǎng)上找的解決辦法都是關(guān)閉web.py的調(diào)試模式,但有時(shí)關(guān)閉后也會(huì)報(bào)錯(cuò),很是郁悶。
最后鄭曉摸索出了使用session時(shí)需要注意的幾點(diǎn),在這里記錄一下:
1. 首先請(qǐng)關(guān)閉調(diào)試模式:
web.config.debug = False
代碼需加到import web后,調(diào)用web.application之前,像這樣:
import web
web.config.debug = False
urls = ('/', 'index')
app = web.application(urls, globals())
2. 創(chuàng)建session時(shí),加上initializer參數(shù),給你的session設(shè)置個(gè)默認(rèn)值,像這樣:
session = web.session.Session(app, web.session.DiskStore('sessions'), initializer={'user':None, 'login':None})
按說(shuō)不加initializer也應(yīng)該可以使用啊,不知道為什么我不加的話(huà),就會(huì)報(bào)錯(cuò),不管你是不是判斷了is not None,只要你調(diào)用了session.xxx就報(bào)錯(cuò)。
3.最囧的一點(diǎn):刪除之前創(chuàng)建的sessions文件。
上一步中,鄭曉設(shè)置了將session以文件的形式儲(chǔ)存到當(dāng)前目錄下的sessions目錄中。所以在上二步確認(rèn)無(wú)問(wèn)題后,手動(dòng)將sessions目錄中的已存在的文件刪除。不刪除的話(huà),程序還是使用的舊版session,還會(huì)報(bào)錯(cuò)- -!
4.have fun!
本文采用知識(shí)共享署名-非商業(yè)性使用 3.0 中國(guó)大陸許可協(xié)議進(jìn)行許可,轉(zhuǎn)載時(shí)請(qǐng)注明出處及相應(yīng)鏈接。
本文永久鏈接: http://yjfs.org.cn/web-py-session-attributeerror.html
有段時(shí)間沒(méi)有更新了