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可能不变)。

结束!

原文地址:https://www.cnblogs.com/aaronthon/p/11888313.html