用auth模块 就必定要用它自己提供的一些查询,检索,修改,校验的方法python
如何建立超级用户 用于登陆django admin的后台管理 createsuperuser createuser #普通用户
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')
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): ..
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 = '应用名.表名'