基础字段
from django.db import models
class User(models.Model):
User 类属性
参数 | 说明 |
---|---|
username | 用户名 |
password | 密码 |
邮箱 | |
first_name | 性 |
last_name | 名 |
last_login | 上次登陆时间 |
is_superuser | 是否是管理员账号(/admin) |
is_staff | 是否可以访问admin管理界面 |
is_active | 是否是活跃用户 , 默认True .一般不删除账户 , 而是is_active设为False |
date_joined | 2022-01-24 05:22:05.121174 |
创建用户
from django.contrib.auth.models import User
# 创建普通用户
user = User.objects.create_user(username='chenji',password="131419",email="1")
# 创建超级用户
user = User.objects.create_superuser(username='chenji',password="131419",email="1")
注册后免登录并保持登录状态
from django.contrib.auth import login
from django.contrib.auth.models import User
def login_admin(request):
user = User.objects.create_user(username='chenji',password="131419",email="1")
login(request,user)
return HttpResponse("注册成功并登陆")
校验密码
from django.contrib.auth import authenticate
user = authenticate(username='username',password='password')
# 如果用户名密码校验成功则返回对应的user对象,否则返回None
修改密码
from django.contrib.auth.models import User
try:
user = User.objects.get(username="username")
user.set_password("66666")
user.save()
return HttpResponse("修改密码成功")
except Exception as e:
print(type(e),e)
return HttpResponse("修改密码失败")
保持登录状态
from django.contrib.auth import authenticate
from django.contrib.auth import login
def login_view(request):
user = authenticate(username="username",password="password")
if user:
login(request,user)
登录状态校验
from django.contrib.auth.decorators import login_required
@login_required
def view1(request):
# 该视图用户登录后才可登陆
return HttpResponse("校验成功")
使用request.user可得到当前的登陆用户的object
登录状态取消
from django.contrib.auth import logout
def logout_admin(request):
logout(request=request)
扩展字段(例如:添加手机号,微信,qq,身份证号等等)
⑴建立新表和内建表一对一关联
⑵继承内建表User模型类
继承内建表User模型类
- 添加新应用
- 定义模型类继承AbstractUser
(from django.contrib.auth.models import AbstractUser) - setting.py中指明AUTH_USER_MODEL=“应用名.类名”
(应用:1中的应用,类名:2中的类 )
注意此操作需要在第一次Migrate前进性