Session 使用subapp处理web.py会话?

Session 使用subapp处理web.py会话?,session,web.py,subapplication,Session,Web.py,Subapplication,我读过。 当我 只有一个应用程序,但当我创建子应用程序时,遇到错误~,详细信息如下: main.py: 导入web 从子导入子应用 web.config.debug=False URL=(“/sub”、subapp、“/”、“count”、) app=web.application(URL,globals()) db=web.database(dbn='sqlite',db='./session.db') store=web.session.DBStore(db,‘sessions’) sess

我读过。 当我 只有一个应用程序,但当我创建子应用程序时,遇到错误~,详细信息如下:

main.py

导入web
从子导入子应用
web.config.debug=False
URL=(“/sub”、subapp、“/”、“count”、)
app=web.application(URL,globals())
db=web.database(dbn='sqlite',db='./session.db')
store=web.session.DBStore(db,‘sessions’)
session=web.session.session(应用程序、商店、初始值设定项={'count':0})
def会话_hook():
web.ctx.session=会话
应用程序添加处理器(web.loadhook(会话\u hook))
班级人数:
def GET(自我):
session.count+=1
返回str(session.count)
如果名称=“\uuuuu main\uuuuuuuu”:
app.run()
子页py

导入web
URL=(“/”,“计数”,)
subapp=web.application(URL,globals())
session=web.ctx.session
班级人数:
def GET(自我):
session.count+=1
返回str(session.count)
尝试运行时出错:

Traceback (most recent call last):
  File "main.py", line 2, in <module>
    from sub import subapp
  File "/tmp/session/sub.py", line 9, in <module>
    session = web.ctx.session
AttributeError: 'ThreadedDict' object has no attribute 'session'
回溯(最近一次呼叫最后一次):
文件“main.py”,第2行,在
从子导入子应用
文件“/tmp/session/sub.py”,第9行,在
session=web.ctx.session
AttributeError:“ThreadedDict”对象没有属性“session”

您不能简单地分配
session=web.ctx.session
,因为此行仅在应用程序初始化期间执行,但
ctx
属性仅在请求时可访问。您可以从web导入ctx
,然后在所有子应用程序中使用
ctx.session
而不是
session

子页py示例:

导入web
从web导入ctx
URL=(
“/”,“计数”,
)
subapp=web.application(URL,globals())
班级人数:
def GET(自我):
ctx.session.count+=1
返回str(ctx.session.count)

只能从控制器方法和LoadHook使用
ctx