Django用户认证组件 (auth模块)
1、导入 auth 模块
1 2 3 4 5 | # 认证模块 from django.contrib import auth # 对应数据库用户表,可以继承扩展 from django.contrib.auth.models import User |
2、创建用户对象
1 2 3 | create():创建一个普通用户,密码是明文的。 create_user():创建一个普通用户,密码是密文的。 create_superuser():创建一个超级用户,密码是密文的,要多传一个邮箱 email 参数。 |
3、用户认证
1 2 | auth.authenticate(username,password) # 将输入的密码转为密文去认证,认证成功返回用户对象,失败则返回None |
4、登录和退出
1 2 3 4 5 | from django.contrib import auth auth.login() # 该函数接受一个HttpRequest对象,以及一个认证了的User对象。此函数使用django的session框架给某个已认证的用户附加上session id等信息。 auth.logout() # 该函数接受一个HttpRequest对象,无返回值。当调用该函数时,当前请求的session信息会全部清除。该用户即使没有登录,使用该函数也不会报错。 |
5、request.user
Django有一个默认中间件,叫做AuthenticationMiddleware,每次请求进来都会去session中取一个userid,取不到的话,赋值request.user = AnonymousUser() , 一个匿名用户对象。
当用户组件auth.login一旦执行,将userid到session中后,再有请求进入Django,将注册的userid对应的user对象赋值给request.user,即再后面的任何视图函数中都可以从request.user中取到该客户端的登录对象。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 提示词工程——AI应用必不可少的技术
· 地球OL攻略 —— 某应届生求职总结
· 字符编码:从基础到乱码解决
· SpringCloud带你走进微服务的世界