Django——Auth模块(用户认证模块)
1、Auth模块简介
auth模块是对登录认证方法的一种封装,之前我们获取用户输入的用户名及密码后需要自己从user表里查询有没有用户名和密码符合的对象。
而有了auth模块之后就可以很轻松的去验证用户的登录信息是否存在于数据库中。
除此之外,auth还对session做了一些封装,方便我们校验用户是否已登录。
2、Auth认证相关的数据库表
auth_user表就是用户表
3、导入auth模块
# 认证模块
from django.contrib import auth # 对应数据库用户表,可以继承扩展
from django.contrib.auth.models import User
4、命令行创建超级用户:
python manage.py createsuperuser
5、用户认证的相关操作:
(1)创建用户(用户注册)
create():创建一个普通用户,密码是明文的。
create_user():创建一个普通用户,密码是密文的。
create_superuser():创建一个超级用户,密码是密文的,要多传一个邮箱 email 参数。
例子:
from django.shortcuts import render,HttpResponse
from django.contrib import auth
from django.contrib.auth.models import User def zhuce(request):
if request.method == 'GET':
return render(request,'zhuce.html')
else:
name = request.POST.get('name')
password = request.POST.get('password')
user = User.objects.create_user(username=name,password=password)
# user.save() 可以不用写save()也可以创建成功
return HttpResponse('注册成功')
(2)用户认证(判断用户名和密码)
# auth.authenticate(username,password)
# 将输入的密码转为密文去认证,认证成功返回用户对象,失败则返回None
例子:
from django.shortcuts import render,HttpResponse
from django.contrib import auth def login(request):
if request.method == 'GET':
return render(request,'login.html')
else:
name = request.POST.get('name')
password = request.POST.get('password')
user = auth.authenticate(username=name,password=password)
if user:
return HttpResponse('登录成功')
else:
return HttpResponse('登录失败')
(3)保持登录状态
auth.login() # 该函数接受一个HttpRequest对象,以及一个认证了的User对象。此函数使用django的session框架给某个已认证的用户附加上session id等信息。
例子:
from django.shortcuts import render,HttpResponse
from django.contrib import auth def login(request):
if request.method == 'GET':
return render(request,'login.html')
else:
name = request.POST.get('name')
password = request.POST.get('password')
user = auth.authenticate(username=name,password=password)
if user:
auth.login(request,user) #写session等操作并保持登录状态
return HttpResponse('保持登录成功')
else:
return HttpResponse('登录失败')
(4)注销登录状态
auth.logout() # 该函数接受一个HttpRequest对象,无返回值。当调用该函数时,当前请求的session信息会全部清除,若要登录则需要重新登录。该用户即使没有登录,使用该函数也不会报错。
例子:
from django.shortcuts import render,HttpResponse
from django.contrib import auth def zhuxiao(request):
auth.logout(request)
return HttpResponse('注销成功')
(5)判断是否登录
request.user.is_authenticated()
(6)获取登录用户对象
def test(request):
user = request.user #获取当前登录的用户对象
print(user) #打印当前登录的用户对象
print(user.username) #打印当前登录的用户对象的用户名
print(user.password) #打印当前登录的用户对象的密码
return HttpResponse('OK')
(7)检查用户的密码是否正确
auth 提供的一个检查密码是否正确的方法,需要提供当前请求用户的密码。密码正确返回True,否则返回False。
def test(request):
user = request.user
sf = user.check_password('123456')
print(sf)
return HttpResponse('OK')
(8)修改密码
set_password(password) auth 提供的一个修改密码的方法,接收要设置的新密码作为参数。注意:设置完一定要调用用户对象的save方法!!!
def test(request):
user = request.user
user.set_password('1234567') # 参数为新密码
user.save()
return HttpResponse('OK')
Django——Auth模块(用户认证模块)的更多相关文章
- Django之auth模块用户认证模块
一.Auth模块 1)auth模块是什么.登录后台使用的账号密码,则就是使用的auth模块创建的表 Auth模块是Django自带的用户认证模块: 我们在开发一个网站的时候,无可避免的需要设计实现网站 ...
- (30)auth模块(django自带的用户认证模块)
Auth模块是Django自带的用户认证模块: 我们在开发一个网站的时候,无可避免的需要设计实现网站的用户系统.此时我们需要实现包括用户注册.用户登录.用户认证.注销.修改密码等功能,这还真是个麻烦的 ...
- auth模块用户认证
一.auth模块什么 auth模块时django自带的用户认证模块 我们在开发一个网站的时候,无可避免的需要设计实现网站的用户系统.此时我们需要实现包括用户注册.用户登录.用户认证.注销.修改密码等功 ...
- Django基础八之认证模块---auth
Django基础八之认证模块---auth 目录 Django基础八之认证模块---auth 1. auth介绍 2. autho常用操作 2.1 创建用户 2.2 验证用户 2.3 验证用户是否登录 ...
- django rest framework用户认证
django rest framework用户认证 进入rest framework的Apiview @classmethod def as_view(cls, **initkwargs): &quo ...
- laravel7使用auth进行用户认证
原文地址:https://www.wjcms.net/archives/laravel7使用auth进行用户认证 laravel7 版本移除了 auth,大家都知道以前版本是直接使用 php arti ...
- python2.0_day18_Django自带的用户认证模块的使用
用户验证我们基于一个项目来学习利用Django框架中的user表实现用户认证Django练习小项目:学员管理系统设计开发 项目需求: 1.分讲师\学员\课程顾问角色, 2.学员可以属于多个班级,学员成 ...
- Django 学习之用户认证组件auth与User对象
一.auth模块 from django.contrib import auth django.contrib.auth中提供了许多方法,这里主要介绍其中的三个. 1 .authenticate() ...
- SpringBoot+SpringSecurity之多模块用户认证授权同步
在之前的文章里介绍了SpringBoot和SpringSecurity如何继承.之后我们需要考虑另外一个问题:当前微服务化也已经是大型网站的趋势,当我们的项目采用微服务化架构时,往往会出现如下情况: ...
随机推荐
- MegEngine TensorCore 卷积算子实现原理
作者:章晓 | 旷视 MegEngine 架构师 一.前言 2020 年 5 月 Nvidia 发布了新一代的 GPU 架构安培(Ampere).其中和深度学习关系最密切的莫过于性能强劲的第三代的 T ...
- SimpleDateFormat类的线程安全问题和解决方案
摘要:我们就一起看下在高并发下SimpleDateFormat类为何会出现安全问题,以及如何解决SimpleDateFormat类的安全问题. 本文分享自华为云社区<SimpleDateForm ...
- netty系列之:Event、Handler和Pipeline
目录 简介 ChannelPipeline ChannelHandler ChannelHandlerContext ChannelHandler中的状态变量 异步Handler 总结 简介 上一节我 ...
- linux命令打基础
目录 一.shell概述 二.linux命令分类 三.linux命令行 3.1 格式 3.2 编辑Linux命令行 四.Linux基础命令 4.1 pwd:查看当前的工作目录 4.2 cd:切换工作目 ...
- wps查找替换使用通配符一个实例
我现在需要打印一些古诗,很多很多.没有排版. 但发现即使弄个两分栏,还是很不舒服. 于是我就想把古诗之间弄个换行. Ctrl+F 打开查找替换 上框输入 ([0-9])*([0-9])*(.) 下 ...
- configmap使用方法
说明: kubernetes统一配置管理方案configmap,实现将配置文件从容器镜像中解耦,增强应用的可移植性.数据可直接注入pod对象中,为容器所使用,注入方式有挂载为存储卷和传递为环境变量两种 ...
- Greenplum 6安装指南(CentOS 7.X)
一.基本概念 Greenplum是一个面向数据仓库应用的关系型数据库,因为有良好的体系结构,所以 在数据存储.高并发.高可用.线性扩展.反应速度.易用性和性价比等方面有非常 明显的优势.Greenpl ...
- 【加解密】使用CFSSL生成证书并使用gRPC验证证书
写在前面的话 CFSSL是CloudFlare旗下的PKI/TLS工具.可以用于数字签名,签名验证和TLS证书捆绑的命令行工具和HTTP API服务器. 是使用golang语言开发的证书工具. 官方地 ...
- Shell-08-文本处理sed
文本处理sed sed:流编辑器,过滤和替换文本 工作原理:sed命令将当前处理的行读入模式空间进行处理,处理完把结果输出,并且清空模式空间. 然后再将下一行读入模式空间进行处理输出,以此类推,直到最 ...
- 一文搞懂RPC原理
RPC原理解析 什么是RPC RPC(Remote Procedure Call Protocol)--远程过程调用协议,它是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议.R ...