django 用戶認證 user對象


django中的用戶模型 內部帶有很多的屬性方法,我們可以直接使用

1 is_staff

Boolean。決定用戶是否可以訪問admin管理界面。默認False。

2 is_active

Boolean。 用戶是否活躍,默認True。一般不刪除用戶,而是將用戶的is_active設為False。

3 is_authenticated()

用戶是否通過驗證,登陸。

4 make_password(password)

給密碼加密  django自帶的加密功能是hash 加鹽

5 check_password(password)

檢查用戶輸入的密碼是否正確

6 set_password(password)

修改用戶密碼

7 authenticate()

 

from django.contrib.auth import authenticate, login, logout
def post(self, request):
    username = request.POST.get('username', '')
    password = request.POST.get('password', '')
    form = LoginForm(request.POST)
    if form.is_valid():
        try:
            user = UserProfile.objects.get(Q(username=username)|Q(email=username)|Q(mobile=username))
        except:
            return render(request, 'login.html', {'errors': u"用戶不存在!請先注冊"})
        if user.is_active:
            user1 = authenticate(username=username, password=password)
            if user1 is None:
                return render(request, 'login.html', {'errors': u"用戶名/密碼有誤!"})
            login(request, user1)
            return render(request, 'index.html')
        else:
            return render(request, 'login.html', {'errors': u"該用戶尚未激活!"})
    return render(request, 'login.html', {'form': form})
8 last_login

 

上一次的登錄時間,為datetime對象,默認為當時的時間。

 

user.last_login  =  timezone.now()
9 request.user.is_authenticated()

 

可以判斷當前用戶是否登錄

10 request.user.username

獲取當前登錄用戶的用戶名

 

 


免責聲明!

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



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