无法使Beaker会话正常工作(KeyError)
我刚接触Python,正在努力让我的网页框架中的会话功能正常工作。 我尝试在webpy框架和Juno框架中使用Beaker会话,但每次我尝试启动会话时,总是会遇到一个KeyError错误。
这是我在webpy中遇到的错误信息(在Juno中使用Beaker会话时,错误信息几乎是一样的)……
错误
<type 'exceptions.KeyError'> at /
'beaker.session'
Python /Users/tyler/Dropbox/Code/sites/webpy1/code.py in GET, line 15
Web GET http://localhost:1234/
15. session = web.ctx.environ['beaker.session']
代码
import web
import beaker.session
from beaker.middleware import SessionMiddleware
urls = (
'/', 'index'
)
class index:
def GET(self):
session = web.ctx.environ['beaker.session']
return "hello"
app = web.application(urls, globals())
if __name__ == "__main__": app.run()
1 个回答
2
你还没有创建会话对象,所以在环境中找不到它(KeyError
的意思就是 "beaker.session
不在这个字典里")。
需要注意的是,我对 webpy 和 beaker 也不是很了解,所以不能给你更深入的建议。不过根据我从文档和源代码中理解的内容,这应该能帮助你入门:
if __name__ == "__main__": app.run(SessionMiddleware)