如果需求是注冊成功后即表示用戶認證通過,那么此時可以在注冊成功后實現狀態保持
- login( ) 方法介紹:
狀態保持:
將通過認證的用戶的唯一標識信息(比如:用戶ID)寫入到當前 session 會話中
- login( ) 方法:
Django 用戶認證系統提供了 login() 方法
封裝了寫入 session 的操作,幫助我們快速實現狀態保持
- login( ) 位置:
django.contrib.auth.init.py 文件中
login(request, user, backend=None)
login( ) 方法使用
#保存注冊數據
try:
user = User.objects.create_user(username=username, password=password, mobile=mobile)
except DatabaseError:
return render(request, 'register.html', {'register_errmsg': '注冊失敗'})
#實現狀態保持
login(request, user)
#響應注冊結果
return redirect(reverse('contents:index'))
查看狀態保持結果

logout()清除session,實現退出登錄
- logout( ) 位置
django.contrib.auth.__init__.py文件中
- logout( ) 方法使用
# 導入:
from django.contrib.auth import logout
class LogoutView(View):
"""退出登錄"""
def get(self, request):
"""實現退出登錄邏輯"""
# 清理 session
logout(request)
# 退出登錄,重定向到登錄頁
response = redirect(reverse('contents:index'))
# 退出登錄時清除 cookie 中的 username
response.delete_cookie('username')
# 返回響應
return response
由於首頁中用戶名是從 cookie 中讀取的。所以退出登錄時,需要將 cookie 中用戶名清除
