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

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

时间2025-06-20 10:22:27分类IT科技浏览4925
导读: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
linux最小化快捷键(恢复Linux桌面下方面板上显示最小化的图标的方法)