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如何继承.之后我们需要考虑另外一个问题:当前微服务化也已经是大型网站的趋势,当我们的项目采用微服务化架构时,往往会出现如下情况: ...
随机推荐
- ASP.NET Datalist制作显示效果和img的数据库存储
1. 具体实现效果如下图: 2.首先使用datalist控件编辑模板,在属性面板选择RepeatColumns="3" RepeatDirection="Horizont ...
- Pytorch Torchvision Transform
Torchvision.Transforms Transforms包含常用图像转换操作.可以使用Compose将它们链接在一起. 此外,还有torchvision.transforms.functio ...
- Salesforce Integration 概览(三) Remote Process Invocation—Fire and Forget(远程进程调用-发后即弃)
本篇参考:https://resources.docs.salesforce.com/sfdc/pdf/integration_patterns_and_practices.pdf 我们在上一篇讲了远 ...
- 用 区间判断(if)来猜价格的高低
1 #include <stdio.h> 2 #include <stdlib.h> 3 int main() 4 { 5 int price = 150; 6 int gue ...
- 37岁Android程序员被裁员,面试大厂被拒,降薪去小公司,心更凉了
在职场论坛看到这样一个帖子,程序员小A被前公司裁员了,裁员之后也并没有特别气馁,打算重头再来,结果却被现实打击到了. 他大学毕业的时候进入到一家知名互联网公司上班,工作期间,也是不断学习,提升自己的能 ...
- 史上最详细的Android消息机制源码解析
本人只是Android菜鸡一个,写技术文章只是为了总结自己最近学习到的知识,从来不敢为人师,如果里面有不正确的地方请大家尽情指出,谢谢! 606页Android最新面试题含答案,有兴趣可以点击获取. ...
- 浅谈C#取消令牌CancellationTokenSource
前言 相信大家在使用C#进行开发的时候,特别是使用异步的场景,多多少少会接触到CancellationTokenSource.看名字就知道它和取消异步任务相关的,而且一看便知大名鼎鼎的Cancella ...
- XV6学习笔记(1) : 启动与加载
XV6学习笔记(1) 1. 启动与加载 首先我们先来分析pc的启动.其实这个都是老生常谈了,但是还是很重要的(也不知道面试官考不考这玩意), 1. 启动的第一件事-bios 首先启动的第一件事就是运行 ...
- SortCompare.time的反射版本
"Algorithms" by Robert Sedgewick, p256, SortCompare.time(): public static double time(Stri ...
- WPF listbox 实现动态滚轮下拉定位
private ObservableCollection<keymodel> _listlua; public ObservableCollection<keymodel> l ...