官方给的session例子这里就不讲了。下面直接将怎么设置session,取session:
session相关代码一定要放在web.py框架的Main.py里面。
# Main.py
# 设置session
import web
import subsafe # 子程序
urls = (
"/safa", "Safe",
"/subsafe", subsafe.app
)
web.config.debug = False # 注意调式模式使用
web.config.session_paremeters['timeoue'] = 60*10 # 10分子超时
app = web.application(urls, globals())
session = web.session.Session( # 设置session
app,
web.session.DiskStore(sessions), initializer={ # initializer这个参数是个字典,字典内的参数根据自己需求随便设置
'login': False,
'user': "xiaoming"
})
def session_hook():
web.ctx.session = session
class Safe(object):
def GET(self):
print web.ctx.session.session_id
return "主程序ok"
if __name__ == "__main__":
app.add_processor(web.loadhook(session_hook)) #添加钩子,在每一个接口之前都执行
app.run()
子程序中:
# subsafe.py 子程序
import web
urls = (
"subapp", "subApp"
)
app = app.application(urls, globals())
class subApp(object):
def GET(self):
print web.ctx.session.session_id # session可以理解为服务器给浏览器的cookie,通过session_id可以找到服务器给浏览器设置的session
print web.ctx.session.name # 取自己设置的session
return "子程序ok"