狀態保持login()和狀態清除logout()


如果需求是注冊成功后即表示用戶認證通過,那么此時可以在注冊成功后實現狀態保持

  • 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 中用戶名清除


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM