auth模块 django用户相关的自带的功能模块 auth_user表 如何创建超级用户 createsuperuser 模块导入 from django.contrib import auth from django.contrib.auth.models import User auth方法大全 1.创建用户 User.objects.create() # 密码是明文 User.objects.createuser() # 基本都用它 User.objects.createsuperuser() # 邮箱要给数据 2.校验用户名和密码是否正确 auth.authenticate(username=username,password=password) # 用户名和密码两个一个都不能少 # 该方法当用户名和密码正确的时候返回的用户对象 不正确返回None 3.保存用户登录状态 auth.login(request,user_obj) # 这一句执行之后 request.user获取当前登录的用户对象 4.如何判断当前用户是否登录 以及如何获取当前登录用户对象 request.user.is_authenticated() # 判断是否登录 request.user # 登录用户对象 5.校验用户是否登录 from django.contrib.auth.decorators import login_required # 局部配置 @login_required(login_url=‘/login/‘) def xxx(request): return HttpResponse(‘xxx页面‘) # 全局配置 配置文件中写以下代码 LOGIN_URL = ‘/login/‘ @login_required def xxx(request): return HttpResponse(‘xxx页面‘) # 如果两个都设置了 那么优先执行局部配置 6.修改密码 request.user.check_password(old_password) # 校验原密码是否正确 request.user.set_password(new_password) request.user.save() # 一定要保存 7.注销功能 auth.logout(request)
如何扩展auth_user表
# 1 利用一对一表关系()
# 2 利用类的继承
# 1 类的继承
from django.contrib.auth.models import User,AbstractUser
# Create your models here.
class Userinfo(AbstractUser):
phone = models.BigIntegerField()
avatar = models.FileField()
# 扩展的字段 尽量不要与原先表中的字段冲突
# 2 配置文件
AUTH_USER_MODEL = ‘应用名.表名‘
"""
django就会将userinfo表来替换auth_user表
并且之前auth模块所有的功能不变 参照的也是userinfo表
"""
原文:https://www.cnblogs.com/bigbox/p/12193973.html