在Google App Engine上通过Bottle启用Beaker SessionMiddleware
我正在尝试在我的基于Bottle的GAE应用中使用Beaker来处理会话。问题是我需要在这里把“app”作为应用来运行。
session_opts = {
'session.type': 'ext:google',
'session.auto': True,
}
app = beaker.middleware.SessionMiddleware(bottle.app(), session_opts)
然后调用
bottle.run(app=app)
但是我不能这样做,因为在示例Bottle应用中提到:
# Note: We don't need to call run() since our application is embedded within
# the App Engine WSGI application server.
所以我想问的是,如何才能用Beaker的会话中间件来运行服务器呢?
1 个回答
1
好的,我找到了问题的原因 - 感谢你让我思考,Gianni。基本上,我在代码中有
- url: .*
script: main.bottle
这段代码的意思是,GAE(谷歌应用引擎)把我在main.py里的bottle变量当成了“应用”。所以当我改成这样的时候:
from bottle import app, route, hook...
session_opts = {
'session.type': 'ext:google',
'session.auto': True,
}
bottle = beaker.middleware.SessionMiddleware(app(), session_opts)
一切都正常运行了。看来我得多看看应用引擎的文档了。