django 用户认证 user对象

  • Post author:
  • Post category:其他



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


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









版权声明:本文为m0_38061194原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。