如何设置会话在4分钟后过期?
假设我这样做:
request.session['x'] = 33
我怎么才能让这个会话变量在4分钟后过期呢?就只让这个变量过期!我不想让所有的会话都过期。
如果这做不到,有没有什么函数可以帮我跟踪这个变量的时间?(一个可以用会话来计时的函数?)
3 个回答
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']
}
附言:这不是Python语言。
1
你不能在会话中自动让某个单独的变量过期。
相反,你可以把这个变量放在自己的 cookie 里,然后设置它在四分钟后过期。具体怎么设置 cookie,可以参考这份文档。
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里。