當(dāng)前位置:博客首頁(yè)>>Python >> 閱讀正文

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

web.py使用session時(shí)報(bào)錯(cuò)AttributeError的解決辦法:目前有7 條留言

用戶(hù)評(píng)論頭像 勵(lì)志小興發(fā)表于 2015年04月08日 21:24[回復(fù)]

有段時(shí)間沒(méi)有更新了

用戶(hù)評(píng)論頭像 健康零食發(fā)表于 2015年04月02日 15:35[回復(fù)]

我還是沒(méi)弄好

    用戶(hù)評(píng)論頭像 鄭曉發(fā)表于 2015年04月03日 11:42[回復(fù)]

    肯定是你的打開(kāi)方式不對(duì) ??

      用戶(hù)評(píng)論頭像 Bary發(fā)表于 2015年06月23日 00:50[回復(fù)]

      是姿勢(shì)不對(duì)。

用戶(hù)評(píng)論頭像 情侶網(wǎng)名發(fā)表于 2015年03月28日 18:54[回復(fù)]

找了很久,謝謝你

用戶(hù)評(píng)論頭像 楊復(fù)然個(gè)人博客發(fā)表于 2015年03月27日 18:46[回復(fù)]

過(guò)來(lái)收藏一下你的博客,以后方便聯(lián)系,呵呵

用戶(hù)評(píng)論頭像 顧建偉發(fā)表于 2015年03月21日 15:45[回復(fù)]

個(gè)人博客來(lái)看看你啦

發(fā)表評(píng)論

change vcode