操作表
要调用此表需先导入二个方法
from django.contrib import auth
from django.contrib.auth.models import User
登录
auth.authenticate(request,username=username,password=password)
注:必须同时传入用户名与密码
注:此密码为密文格式
此命令拥有两个返回值
1.返回对象
在对象中可以查看对应信息(按数据库里的输出)
2.返回none
保存状态
auth.login(request,对象)
相当于request.session[key] = 对象
注:保存session
注:当执行这条方法时会自动存入django_session数据库中而且在任何地方都可以通过request.user获取当前登录的用户对象
判断是否登录
request.user,is_authenticated()
注:返回值为True或者False
获取当前用户登录名称
request.user
新旧密码比较
request.user.check_password(老密码)
注:自动加密且比对新老密码,返回值为True或者False
修改密码
request.user.set_password(新密码)
request.user.save()
注销
auth.logout(request)
注:消除session
自带的登录装饰器
from django.contrib.auth.decorators import login_required
@login_required(login_url=’/login/’)
注:该为局部配置,跳转带指定的页面
LOGIN_URL = ‘/login/’
@login_required
注:该为全局配置,没有值就往全局位置跳转
注册
User.objects.create_user(username=username,password=password)
注:此为注册普通用户,无需填入email
User.objects.create_superuser(username=username,email=‘123@qq.com’,password=password)
注:此为注册超级用户,不对外开放,需要填入eamil
注:以上两条存入数据库时 密码会自动转成密文格式(好像是sha256)
拓展表
class UserInfo(AbstractUser):
“”"
如果继承了AbstractUser
那么在执行数据库迁移命令的时候auth_user表就不会再创建出来了
而UserInfo表中会出现auth_user所有的字段外加自己扩展的字段
这么做的好处在于你能够直接点击你自己的表更加快速的完成操作及扩展
前提:
1.在继承之前没有执行过数据库迁移命令
auth_user没有被创建,如果当前库已经创建了那么你就重新换一个库
2.继承的类里面不要覆盖AbstractUser里面的字段名
表里面有的字段都不要动,只扩展额外字段即可
3.需要在配置文件setting中告诉django你要用UserInfo替代auth_user(******)
AUTH_USER_MODEL = 'app01.UserInfo'
'应用名.表名'
"""
phone = models.BigIntegerField()