auth模块
方法:
1.比对用户名和密码
user_obj = auth.authenticate(request,username=username,password=password)
print(user_obj) # 用户对象eric 数据不符合则返回None
print(user_obj.username) # eric
print(user_obj.password) # 密码password
2.保存用户状态
auth.login(request,user_obj) # 类似于设置session的功能request.session[key] = user_obj
# 保存用户状态后,可以随时通过request.user获取到当前登录的用户对象
3.判断当前用户是否登录
request.user.is_authenticated()
4.获取当前登录用户
request.user
5.校验用户是否登录的装饰器
from django.contrib.auth.decorators import login_required
# 局部配置
@login_required(login_url='/login/') # 参数为自己设置的跳转页面
# 全部配置
LOGIN_URL = '/login/'
6.密码处理
# 比对原密码
request.user.check_password(old_password)
# 修改密码
request.user.set_password(new_password)
request.user.save()
7.注销
auth.logout(request)
8.注册
# 操作auth_user表写入数据
User.objects.create(username=username,password=password) # 写入数据,但是数据库保存的密码是明文的
# 创建普通用户
User.objects.create_user(username=username,password=password)
# 创建超级用户
User.objects.create_superuser(username=username,email='aaa@gmail.com',password=password) # 邮箱必填
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通