官方给的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可能不变)。

结束!

相关文章:

  • 2021-07-21
  • 2021-06-11
  • 2022-12-23
  • 2022-12-23
  • 2021-11-27
  • 2021-08-27
  • 2022-12-23
猜你喜欢
  • 2022-12-23
  • 2021-12-07
  • 2022-01-12
  • 2021-08-15
  • 2021-10-06
  • 2021-10-22
  • 2022-01-25
相关资源
相似解决方案