如何设置会话在4分钟后过期?

3 投票
3 回答
2470 浏览
提问于 2025-04-16 09:29

假设我这样做:

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里。

撰写回答