auth用户认证模块

auth模块

用auth模块 就必定要用它自己提供的一些查询,检索,修改,校验的方法python

自带的admin管理后台中建立管理员用户,普通用户

(tools菜单中的run manager.py选项下输入)
如何建立超级用户 用于登陆django admin的后台管理
    createsuperuser
    
    createuser  #普通用户

auth基本使用语法

(views.py中)
from django.contrib import auth
from django.contrib.auth.models import User

校验用户是否存在
user_obj = auth.authenticate(username=username,password=password)  # 返回的是数据对象
                                                                   # 没有返回None
# is_alive = User.objects.filter(username=username) #经过orm查找


#保存用户登陆状态
auth.login(request,user_obj)# 执行完这一句以后 只要是可以拿到request的地方 
                            # 均可以经过request.user获取到当前登陆用户对象
    
            """该方法会主动帮你操做session表 而且只要执行了该方法
            你就能够在任何位置经过request.user获取到当前登陆的用户对象
            """

# 简单快捷的判断用户是否登陆        
print(request.user.is_authenticated())  


# 校验原密码对不对
is_right = request.user.check_password(old_password)


# 修改密码
request.user.set_password(new_password)  # 仅仅只会在内存中产生一个缓存 并不会直接修改数据库
request.user.save()  # 必定要点save方法保存 才能真正的操做数据库

# User.objects.create(username=username,password=password)  
# 不用使用create 密码会直接存成明文

# 建立普通用户
User.objects.create_user(username=username,password=password)  
  
# 建立超级用户  邮箱字段必须填写  
User.objects.create_superuser(username=username,password=password,email='123@qq.com')

auth模块自带登录装饰器

(views.py中)
from django.contrib.auth.decorators import login_required

# @login_required(login_url='/login/')  # 局部配置,直接加在函数上,和普通装饰器同样

# auth校验用户是否登陆 全局配置跳转url
LOGIN_URL = '/login/'   #在setings.py中加入

@login_required
def set_password(request):
    ..

当咱们使用auth用户认证模块,在表中想要加字段能够继承AbstractUser来实现,自动生成User也是继承了这个.

(models.py中)
from django.contrib.auth.models import AbstractUser
# Create your models here.

class Userinfo(AbstractUser):
    """
    强调 你继承了AbstractUser以后 你自定义的表中 字段不能跟原有的冲突
    """
    phone = models.BigIntegerField()
    avatar = models.FileField()
    register_time = models.DateField(auto_now_add=True)


# auth自定义表配置  (在settings.py任意位置加入)
AUTH_USER_MODEL = 'app01.Userinfo'
# 固定语法: AUTH_USER_MODEL = '应用名.表名'
相关文章
相关标签/搜索