web.py下session初始化的问题

 

在定义了session时使用initializer进行初始值的设定,比如

 

session = web.session.Session(

    app,

    web.session.DiskStore('sessions'),

    initializer = {

        "login": 0,

        "name": None

        }

    )

 

这里我想要在session中保存两个键对login和name,分别初始化为0和None。

但是当使用login进行是否已登录的判断过程中却总是报login没有进行定义的错误。

调试session的值输出得到

 

<Storage {}>

 

也就是说没有任何初始值进行过定义。

 

 

话说功夫不负苦心人,我翻看web.py的源代码半天也查出个所以然来,转念一想官网的cookbook中提到过session是不支持在debug模式下使用的。但是要说不支持debug模式的话,我明明定义了

web.config.debug = False

只不过这句关闭调试的设置是在session的定义之后进行的,那么调换一下位置先关闭debug在定义session。

输出session的值

 

 

<Storage {'ip': u'127.0.0.1', 'login': 0, 'name': None, 'session_id': '56da8438d6d759194123f1bf848e4df5fda18c32'}>

 

圆满~

.

后记:

如果要在调试模式下使用session,方法如下:

if web.config.get('_session') is None:

    session = web.session.Session(

        app,

        web.session.DiskStore('sessions'),

        initializer = {

            "login": 0,

            "name": None

            }

        )

    web.config._session = session

else:

    session = web.config._session

 

 

马克一下,算是给自己个警钟吧,很多时候在google十下也找不到答案的时候,潜心分析下官方文档吧

-The End-

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值