在使用烧杯会话时,我遇到了在整个应用程序中使用相同的会话对象。
我是通过这个网址来的:Bottle.py session with Beaker
但是,当我尝试通过另一个函数访问一个函数中的保存会话值时,我仍然收到“KeyError”。
我的 rest.py 文件看起来像:
import bottle
from bottle import route,default_app
from beaker.middleware import SessionMiddleware
app = bottle.default_app()
@bottle.hook('before_request')
def setup_request():
request.session = request.environ['beaker.session']
@app.route('/login')
def login():
request.session['uname'] = 'user'
@app.route('/logout')
def logout():
print request.session['uname']
# expecting to print user
session_opts = {
'session.type': 'file',
'session.data_dir': '/tmp/',
'session.cookie_expires': True,
}
app = SessionMiddleware(bottle.default_app(),session_opts)
我在最后提到了 SessionMiddleware,因为我在此链接https://groups.google.com/forum/#!topic/bottlepy/m0akSbWRpZg的帮助下遇到了错误
但是当我在注销功能中访问 request.session 时,我得到了
'KeyError': Uname not found
任何人都可以清楚地举例说明如何调整代码以在整个应用程序中保持相同的会话。