Django如果用户离开某些页面,则清除请求会话值

Django如果用户离开某些页面,则清除请求会话值,django,django-sessions,Django,Django Sessions,每次用户从某些页面导航时,我都需要清除请求会话变量 我在考虑为这样的事情编写自己的中间件,并实现process\u请求 在需要时清除变量 你觉得怎么样 你知道更好的解决办法吗 它会立即损害性能吗 10x您可以使用请求\u finished信号来检测HTTP请求,并触发一个函数来获取当前页面的路径,以检查用户是否已导航到其他页面。如果有,那么您可以在会话上调用flush(),或者将特定会话变量设置为nil,等等 比如: from django.core.signals import request

每次用户从某些页面导航时,我都需要清除请求会话变量

我在考虑为这样的事情编写自己的中间件,并实现process\u请求 在需要时清除变量

你觉得怎么样

你知道更好的解决办法吗

它会立即损害性能吗


10x

您可以使用
请求\u finished
信号来检测HTTP请求,并触发一个函数来获取当前页面的路径,以检查用户是否已导航到其他页面。如果有,那么您可以在会话上调用
flush()
,或者将特定会话变量设置为nil,等等

比如:

from django.core.signals import request_finished

def check_url(request):
    original_path = '/path_to_original_page'
    if HttpRequest.get_full_path(request) != original_path:
        request.session.flush()

request_finshed.connect(check_url, sender)

查看和上的文档以了解更多信息。我认为没有必要为此编写自己的中间件,但请选择适合您需要的任何中间件。

谢谢。你说得对。mw为过压信号较好。