gpt4 book ai didi

python - 当用户注销 Django 时如何删除 session ?

转载 作者:行者123 更新时间:2023-12-01 00:32:21 25 4
gpt4 key购买 nike

我正在学习 Django。我创建了注销功能。但是当我用 for 循环时,它给出了一个错误。

我的代码:

def logout(request):
for key in request.session.keys():
del request.session[key]

return redirect('login')

但出现此错误?我正在使用 Python 3。你能帮助我吗?

RuntimeError at /logout/
dictionary changed size during iteration

最佳答案

修改要迭代的集合很棘手,而且通常是不允许的。它很容易导致问题,因为迭代器通常是在集合不会改变的假设下实现的。

但是,您不需要需要迭代此处的键。您可以使用 clear() method [Django-doc] :

def logout(request):
<b>request.session.clear()</b>
return redirect('login')

但这还不够。 Django 已经创建了一个注销用户的功能,该功能将清除 session 、删除 session 等。logout(..) [Django-doc] 。因此,您可以将其实现为:

from django.contrib.auth import logout as <b>auth_logout</b>

def logout(request):
<b>auth_logout(request)</b>
return redirect('login')

关于python - 当用户注销 Django 时如何删除 session ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58086566/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com