如何将会话设置为在4分钟内到期?

时间:2011-01-06 06:37:15

标签: python django http session count

假设我这样做:

request.session['x'] = 33

如何让此会话变量在4分钟后到期?这个变量只!!我不希望所有会话都过期。

如果无法做到这一点,是否有可以跟踪它的功能? (一个使用会话本身来计算的函数?)

3 个答案:

答案 0 :(得分:3)

您必须自己跟踪会话变量的年龄。在实际的Python代码中,它看起来像这样:

from datetime import datetime, timedelta

request.session['x'] = dict(dt=datetime.now(), value='something')

MAX_AGE = timedelta(seconds=240)

if ('x' in request.session and datetime.now() - request.session['x']['dt'] > MAX_AGE):
    del request.session['x']

也可以将您的值存储在cookie中,具体取决于它的数据和大小。

答案 1 :(得分:1)

您无法自动使会话中的单个变量过期。

相反,您可以将该变量存储在自己的cookie中,您可以为其设置四分钟的到期时间。请参阅documentation on how to set cookies

答案 2 :(得分:0)

request.session['x_settime'] = time x was set
if (request.session['x_settime'] is older than 4 minutes) {
     delete request.session['x']
     delete request.session['x_settime']
}

P.S。这不是python