web.py之cookie和session
官方给的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.sessionDiskStore(sessions), # sessionDiskStore将session存到内存 initializer={ # initializer这个参数是个字典,字典内的参数根据自己需求随便设置 'login': False, 'user': "xiaoming" }) def session_hook(): web.cts.session = session
class Safe(object):
def GET(self):
print web.ctx.session.session_id
return "主程序ok" if __name__ == "__main__": app.add_processor(web.loodhook(session_hook)) #添加钩子,在每一个接口之前都执行 # app.processors.append(Convert.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
print web.cookies.get("webpy_session_id") # 取session_id,可以理解为cookie return "子程序ok"
注:session_id是服务器随机分配给浏览器的,是唯一的,是有有效期的,同一个浏览器请求服务器,在连贯访问服务器时session_id不会变,不连贯访问一般session_id会变(短时间内不连贯访问,session_id可能不变)。
结束!