我是Python世界的新手,并且在我的Web框架中使用会话时节省了大量时间。我试过让Beaker会话与webpy框架和Juno框架一起工作。在两个框架中,当我尝试启动会话时,我总是得到一个KeyError。
这是webpy中的错误消息(当我尝试在Juno中使用beaker会话时,它几乎完全相同)...
ERROR
<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']
CODE
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()
答案 0 :(得分:2)
您还没有创建会话对象,因此您无法在环境中找到它(KeyError
只是意味着“beaker.session
不在此词典中”。
请注意,我不太了解webpy或beaker,所以我不能给你更深入的建议,但是根据我从文档和来源的理解,这应该让你开始:
if __name__ == "__main__": app.run(SessionMiddleware)