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模块(用户认证模块)的更多相关文章

  1. Django之auth模块用户认证模块

    一.Auth模块 1)auth模块是什么.登录后台使用的账号密码,则就是使用的auth模块创建的表 Auth模块是Django自带的用户认证模块: 我们在开发一个网站的时候,无可避免的需要设计实现网站 ...

  2. (30)auth模块(django自带的用户认证模块)

    Auth模块是Django自带的用户认证模块: 我们在开发一个网站的时候,无可避免的需要设计实现网站的用户系统.此时我们需要实现包括用户注册.用户登录.用户认证.注销.修改密码等功能,这还真是个麻烦的 ...

  3. auth模块用户认证

    一.auth模块什么 auth模块时django自带的用户认证模块 我们在开发一个网站的时候,无可避免的需要设计实现网站的用户系统.此时我们需要实现包括用户注册.用户登录.用户认证.注销.修改密码等功 ...

  4. Django基础八之认证模块---auth

    Django基础八之认证模块---auth 目录 Django基础八之认证模块---auth 1. auth介绍 2. autho常用操作 2.1 创建用户 2.2 验证用户 2.3 验证用户是否登录 ...

  5. django rest framework用户认证

    django rest framework用户认证 进入rest framework的Apiview @classmethod def as_view(cls, **initkwargs): &quo ...

  6. laravel7使用auth进行用户认证

    原文地址:https://www.wjcms.net/archives/laravel7使用auth进行用户认证 laravel7 版本移除了 auth,大家都知道以前版本是直接使用 php arti ...

  7. python2.0_day18_Django自带的用户认证模块的使用

    用户验证我们基于一个项目来学习利用Django框架中的user表实现用户认证Django练习小项目:学员管理系统设计开发 项目需求: 1.分讲师\学员\课程顾问角色, 2.学员可以属于多个班级,学员成 ...

  8. Django 学习之用户认证组件auth与User对象

    一.auth模块 from django.contrib import auth django.contrib.auth中提供了许多方法,这里主要介绍其中的三个. 1 .authenticate() ...

  9. SpringBoot+SpringSecurity之多模块用户认证授权同步

    在之前的文章里介绍了SpringBoot和SpringSecurity如何继承.之后我们需要考虑另外一个问题:当前微服务化也已经是大型网站的趋势,当我们的项目采用微服务化架构时,往往会出现如下情况: ...

随机推荐

  1. Aria2 任意文件写入

    访问aria2,发现服务已启动并且返回404页面 打开http://binux.github.io/yaaw/demo/#打开yaaw,点击配置按钮,填入运行aria2的目标域名:http://you ...

  2. DC-7靶机

    仅供个人娱乐 靶机信息 下载地址:http://www.five86.com/downloads/DC-7.zip 一.主机扫描 二.信息收集 或者 python3 cmseek.py --url h ...

  3. Python爬虫+可视化教学:爬取分析宠物猫咪交易数据

    前言 各位,七夕快到了,想好要送什么礼物了吗? 昨天有朋友私信我,问我能用Python分析下网上小猫咪的数据,是想要送一只给女朋友,当做礼物. Python从零基础入门到实战系统教程.源码.视频 网上 ...

  4. Java数组06——冒泡排序

    冒泡排序 例子:  package array; ​ import java.util.Arrays; ​ public class ArrayDemon08 {     public static ...

  5. 作为有经验的程序员如果不懂Lambda表达式就说不过去了吧,建议收藏!!!

      最近刚好有空给大家整理下JDK8的特性,这个在实际开发中的作用也是越来越重了,本文重点讲解下Lambda表达式 Lambda表达式   Lambda 表达式,也可称为闭包,它是推动 Java 8 ...

  6. Setup a Simple HTTP Proxy Server

    The host 10.21.3.69 has no H3C client, so it can't access the internet. With Tinyproxy, we can setuu ...

  7. SpringMVC学习05(整合ssm)

    5.整合SSM 环境要求 环境: IDEA MySQL 5.7.19 Tomcat 9 Maven 3.6 要求: 需要熟练掌握MySQL数据库,Spring,JavaWeb及MyBatis知识,简单 ...

  8. Dubbo系列讲解之扩展点实现原理分析【2万字分享】

    Apache Dubbo 是一款微服务开发框架,它提供了 RPC通信 与 微服务治理 两大关键能力.这意味着,使用 Dubbo 开发的微服务,将具备相互之间的远程发现与通信能力, 同时利用 Dubbo ...

  9. DVWA(六):XSS-Reflected 反射型XSS全等级详解

    XSS 概念: 由于web应用程序对用户的输入过滤不严,通过html注入篡改网页,插入恶意脚本,从而在用户浏览网页时,控制用户浏览器的一种攻击. XSS类型: Reflected(反射型):只是简单的 ...

  10. JVM学习笔记之class文件结构【七】

    一.概念 1.1 无符号数: 以 u1.u2.u3.u4.u8 代表 1 个字节,2 个字节.4 个字节.8 个字节的无符号数.无符号数可以描述数字,索引引用.数量值和按照 UTF-8 编码构成的字符 ...