用户认证组件

功能:用session记录登录验证状态

前提:用户表:django自带的auth_user

python3 manage.py makemigrations

python3 manage.py migrate

创建超级用户:python3 manage.py  createsuperuser 

API:

from django.contrib import auth

auth.authenticate(username=user,password=pwd)  # 验证用户名密码

auth.login(request,user)    # 登录成功后,request.user当前登录用户

auth.logout()  # 注销用户

from django.contrib.auth.models import User #User == auth_user

request.user.is_authenticated()   True False

user= User.objects.create_user(username='',password='',email='')

补充:

   匿名用户对象:

    匿名用户

    class models.AnonymousUser

    django.contrib.auth.models.AnonymousUser 类实现了django.contrib.auth.models.User接口,但具有下面几个不同点:

    id 永远为None

    username 永远为空字符串

    get_username()永远返回空字符串

    is_staff和is_superuser永远为False

    is_active 永远为False

    groups和user_permissions永远为空

    is_anonymous() 返回True 而不是False

    set_password(),check_password(),save()和delete()引发NotImplementedError.

    New in Django 1.8:

      新增AnonymousUser.get_username()以更好地模拟django.contrib.auth.models.User.

          总结:request.user

        if not: auth.login(request,user) request.user == AnonymousUser()

        else: request.user==登录对象

        request.user是一个全局对象

        在任何视图和模板直接使用

 认证装饰器:@login_required

 

也可以不用传

注销:

 用户注册:

 

认证装饰器

==>

猜你喜欢

转载自www.cnblogs.com/beallaliu/p/9941511.html