Django 会话过期?

2024-03-05

从 django 的文档中,我的印象是调用:

request.session.set_expiry(300)

从一种观点来看,会导致会话在五分钟后过期不活动;但是,这不是我在 django trunk 中遇到的行为。如果我从一个视图调用此方法,然后浏览到不调用该方法的其他视图,则会话将在五分钟后过期。我所期望的行为是仅在五分钟不活动后才到期,而不是简单地在到期前再次调用 set_expiry 失败。

我的问题是我真的需要在每个视图中调用 set_expiry 吗?如果是这样,是否存在一些可能有帮助的装饰器?我无法想象这不是贡献的一部分。

谢谢, 皮特


作为这些方法的作者,我可以看到文档对此并不是很清楚。您的观察是正确的:只有导致会话更改的请求才被视为“活动”。

您可以使用SESSION_SAVE_EVERY_REQUEST http://docs.djangoproject.com/en/dev/topics/http/sessions/#session-save-every-request设置以获得您想要的行为(明显的代价是必须保存每个请求的会话)。

注意:它将用最新的到期日期更新现有的会话记录。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Django 会话过期? 的相关文章

随机推荐