Loading

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

获取当前登录用户的用户名

 

 

posted @ 2019-09-02 10:33  Ellisonzhang  阅读(1431)  评论(0编辑  收藏  举报