目录
给auth_user表添加自定义的字段:
(1)model.py: from django.db import models from django.contrib.auth.models import AbstractUser class MyUserInfo(AbstractUser): phone = models.CharField(max_length=11,blank=True,help_text='请输入手机号') adddr = models.CharField(max_length=11,blank=True,help_text='请输入地址') class Meta(AbstractUser.Meta): db_table = 'user_login_info_tables' (2)settings.py: AUTH_USER_MODEL = 'app01.MyUserInfo' (3)admin字段 # 在django.contrib.auth.admin中设置 # 将第9行:from ... import Group,User 改为——》 from ... import Group 添加1行:from app01.models import UserInfoTable as User # 找到django.contrib.auth.admin.userAdmin类 # 在fieldsets元组中添加: ('标题名',{'fields':('字段1','字段2')})
创建用户
from django.contrib.auth import User (1)创建超级用户: User.object.createsuperuser(username='',password='',email='') (2)创建普通用户,密码明文: User.object.create(username='',password='') (3)创建普通用户,密码加密: User.object,create_user(username='',password='')
密码相关API
from django.contrib.auth.hashers import make_password,check_password 加密:make_password('密码明文') 会返回一个加密后的字符串 校验:check_password('密码明文',make_password加密的字符串) 修改密码:set_password() ->save() # 保存 # auth的默认库: Models.User.set_password() make_password/check_password是模块,set_password是方法
auth模块的方法
1.authenticate 验证用户与密码 from django.contrib import auth auth.authenticate(usernmae=username,password=password) # 如果验证成功,则返回一个用户User表的对象,如果验证失败,则返回None # 2.login 登录 ..... user_obj = auth.authenticate(username=username,password=pwd) if user_obj: auth.login(request,user_obj) return redirect('index') 3.logout 推出登录 auth.logout(request) return redirect('login') 4.login_required 装饰器 from django.contrib.auth.decorators import login_required # 直接在要判断是否登陆的地方前加@login_required # 配置setting.py: LOGIN_URL = '/login/' @login_required参数: (1)@login_required(redirect_field_name='') # url里get请求方法参数的名称 # (2)@login_required(login_url '') # 请求的