根据Django文档 here
request.session.flush()
从会话中删除当前会话数据并删除会话cookie。 (django.contrib.auth.logout()函数调用它)
但它是否也会自动使数据库表中的会话条目到期?
因为如果不这样做,我认为这可能会导致表中不必要但非过期的会话不必要的累积。
答案 0 :(得分:1)
是的,确实如此。如果您查看source文档字符串明确说明:
def flush(self):
"""
Removes the current session data from the database and regenerates the
key.
"""
self.clear()
self.delete()
self._session_key = None
话虽如此,会有过期会话的累积。这就是您应该使用clearsessions
管理命令设置预定作业以清除它们的原因:
Django不提供自动清除过期的会话。因此,您的工作是定期清除过期的会话。 Django为此提供了一个清理管理命令:
clearsessions
。建议定期调用此命令,例如作为每日cron作业。