• 在子应用下使用session
  • 提示这个解决方案是来自web.py邮件列表。 this
    • 问题如何在子应用中使用session?
    • 解法

    在子应用下使用session

    提示这个解决方案是来自web.py邮件列表。this

    问题如何在子应用中使用session?

    解法

    web.py默认session信息只能在主应用中共享,即便在其他模块中import Session都不行。在app.py(或main.py)可以这样初始化session:

    1. session = web.session.Session(app, web.session.DiskStore('sessions'),
    2. initializer = {'test': 'woot', 'foo':''})

    .. 接下来创建一个被web.loadhook加载的处理器(processor)

    1. def session_hook():
    2. web.ctx.session = session
    3. app.add_processor(web.loadhook(session_hook))

    .. 在子应用(假设是sub-app.py)中,可以这样操作session:

    1. print web.ctx.session.test
    2. web.ctx.session.foo = 'bar'