首页IT科技django怎么读(django的auth模块学习)

django怎么读(django的auth模块学习)

时间2025-08-03 22:04:30分类IT科技浏览5319
导读:auth 1.我们在开发一个网站的时候,无可避免的需要设计实现网站的用户系统。此时我们需要实现包括用户注册、用户登录、用户认证、注销、修改密码等功能,这还真是个麻烦的事情呢。 2.Django作为一个完美主义者的终极框架,当然也会想到用户的这些痛点。它内置了强大的用户认证系统–auth,它默认使用...

auth

1.我们在开发一个网站的时候            ,无可避免的需要设计实现网站的用户系统            。此时我们需要实现包括用户注册              、用户登录                  、用户认证       、注销           、修改密码等功能                     ,这还真是个麻烦的事情呢                     。 2.Django作为一个完美主义者的终极框架      ,当然也会想到用户的这些痛点      。它内置了强大的用户认证系统–auth         ,它默认使用 auth_user 表来存储用户数据         。

Django默认已经提供了认证系统Auth模块                     ,我们认证的时候         ,会使用auth模块里面给我们提供的表                     。认证系统包含:

用户管理 权限 用户组 密码哈希系统 用户登录或内容显示的表单和视图 一个可插拔的后台系统 admin

Django用户模型类

Django认证系统中提供了用户模型类User保存用户的数据      ,默认的User包含以下常见的基本字段:

字段名 字段描述 username 必选         。150个字符以内      。 用户名可能包含字母数字                     ,_             ,@   ,+ . 和-个字符                     。 first_name 可选(blank=True)             。 少于等于30个字符   。 last_name 可选(blank=True)                    。 少于等于30个字符                 。 email 可选(blank=True)。 邮箱地址                。 password 必选                     。 密码的哈希加密串   。 (Django 不保存原始密码)            。 原始密码可以无限长而且可以包含任意字符                     。 groups 与Group 之间的多对多关系      。 user_permissions 与Permission 之间的多对多关系         。 is_staff 布尔值                     。 设置用户是否可以访问Admin 站点         。 is_active 布尔值      。 指示用户的账号是否激活                     。 它不是用来控制用户是否能够登录                    ,而是描述一种帐号的使用状态             。 is_superuser 是否是超级用户   。超级用户具有所有权限                    。 last_login 用户最后一次登录的时间                 。 date_joined 账户创建的时间。 当账号创建时                 ,默认设置为当前的date/time                。

重要方法

Django 用户认证(Auth)组件需要导入 auth 模块

# 认证模块 from django.contrib import auth # 对应数据库用户表,可以继承扩展 from django.contrib.auth.models import User 用户对象 create() # 创建一个普通用户,密码是明文的                     。 create_user() # 创建一个普通用户                ,密码是密文的   。 create_superuser() # 与create_user() 相同                     ,但是设置is_staff 和is_superuser 为True            。 set_password(*raw_password*) # 设置用户的密码为给定的原始字符串   ,并负责密码的                     。 不会保存User对象      。当None为raw_password时            ,密码将设置为一个不可用的密码         。 check_password(*raw_password*) # 如果给定的raw_password是用户的真实密码                     ,则返回True      ,可以在校验用户密码时使用                     。 认证方法 auth.authenticate(username,password) # 将输入的密码转为密文去认证         ,认证成功返回用户对象                     ,失败则返回None 登录和注销方法 from django.contrib import auth # 该函数接受一个HttpRequest对象         ,以及一个认证了的User对象         。此函数使用django的session框架给某个已认证的用户附加上session id等信息      。 auth.login() # 该函数接受一个HttpRequest对象      ,无返回值                     。当调用该函数时                     ,当前请求的session信息会全部清除             。该用户即使没有登录             ,使用该函数也不会报错   。 auth.logout() from django.contrib.auth.models import User User.objects.create(username="Zitty", password="127717") # 不可用 密码不是加密的 User.objects.create_user(username="Zitty", password="127717") # 创建普通用户 密码自动加密 user_obj = auth.authenticate(request, username=username, password=password) auth.login(request, user_obj)#保存用户登录状态 request.user.is_authenticated()#判断当前用户是否登录 request.user.check_password(old_password)#校验原密码是否正确 #修改密码 request.user.set_password(new_password) request.user.save() #千万不要忘了保存 request.user Django有一个默认中间件   ,叫做AuthenticationMiddleware                    ,每次请求进来都会去session中去一个userid                 ,取不到的话,赋值request.user = AnonymousUser() , 一个匿名用户对象                    。 当用户组件auth.login一旦执行                ,将userid到session中后                     ,再有请求进入Django,将注册的userid对应的user对象赋值给request.user   ,即再后面的任何视图函数中都可以从request.user中取到该客户端的登录对象                 。 自定义用户表

from django.contrib.auth.models import AbstractUser

设置Auth认证模块使用的用户模型为我们自己定义的用户模型

格式:“子应用目录名.模型类名            ”

AUTH_USER_MODEL = users.User

创心域SEO版权声明:以上内容作者已申请原创保护,未经允许不得转载,侵权必究!授权事宜、对本内容有异议或投诉,敬请联系网站管理员,我们将尽快回复您,谢谢合作!

展开全文READ MORE
如何有效提升网站SEO排名(8个步骤助你成功打造优质网站) 微信小程序自定义tabbar组件(【小程序】微信小程序自定义组件Component详细总结)