1.Auth模块介绍

1.1 Auth模块是Django自带的用户认证模块,用于处理用户账户、群组、许可和基于cookie的用户回话

Django的认证系统主要包括下面几个部分

1.用户

2.许可

3.组

4.可配置的密码hash系统

5.用于用户登录或者限制访问的表单和视图工具

6.可插拔的后台系统

2.使用Django自带的auth

models文件中创建基于AbstractUser的一个类

from django.contrib.auth.models import AbstractUser
class UserInfo(AbstractUser):
#添加自己的用户属性
nid = models.AutoFiled(primary_key=True)
phone =models.CharField(max_length=11)

按着上面的方式拓展了内置的auth_user表之后,一定要在settings.py文件中告诉Django,现在要使用新定义的UserInfo表来做用户认证,

#引入Django自带的User表,继承使用时需要设置
AUTH_USER_MODEL ='app名.UserInfo'
#一旦指定了新的认证系统所使用的表,需要重新再数据库中创建该表,不能继续使用之前的auth_user表,配置完成之后进行数据库迁移操作
> makemigrations
> migrate
# 执行完上面的操作之后,在之前的auth_user表中会添加nid和phone连个字段

3.Auth组件的常用方法

1.authenticate:用户认证,不能用一般的查询数据展示,password是加密的,不能明文查询

2.login(HttpRequest,user) 接收一个httpresponse对象,以及一个经过认证的User对象,本质上会在后端为该用户生成相关的session数据,该函数实现一个用户登录的功能,

3.logout(HttpRequest) 当前请求的session信息会全部清除,即使该用户没有登录,使用该函数也不会报错

4.is_authenticated() 用来判断当前请求是否通过了认证

5.login_require() auth提供的一个装饰器,用来快捷的给某个视图添加登录校验,需要设置login_url的路径

6.models.User.objects.create_user auth提供的一个创建用户的方法,该方法将password进行了加密,必须提供用户名和密码

7.models.User.objects.create_superuser() 创建超级用户,必须提供用户名和密码

8.user.check_password() 检查密码是否正确,需要提供当前请求用户的密码 返回bool值

9.user.set_password(new_password) 修改密码,提供新的密码,然后保存(一定要调用save保存)

user.save()

4.创建用户开始

在pycharm菜单中tools->Run manage.py Task

命令行模式下执行以下代码

manage.py@DjangoDay02 > createsuperuser

bash -cl "/usr/local/bin/python3.7 /Applications/PyCharm.app/Contents/helpers/pycharm/django_manage.py createsuperuser /Users/zj/Documents/GitHub/DjangoDay02"
Tracking file by folder pattern: migrations
Username: root
Error: That username is already taken.
Username: root123
Email address: 234234@qq.com
Warning: Password input may be echoed.
Password: qwer1234
Warning: Password input may be echoed.
Password (again): qwer1234
Superuser created successfully. Process finished with exit code 0

创建了一个超级用户,用户名为root123 密码为qwer1234,Django自动帮我们对密码进行了加密

5.创建视图展示

from django.shortcuts import render,HttpResponse
from django.http import JsonResponse
# Create your views here.
from django.contrib.auth import authenticate,login,logout
from django.contrib.auth.decorators import login_required from AuthTest.commonTools import requestJSON @requestJSON
def index(request):
if request.method == 'POST':
dict = {'status': 100, 'msg': None}
# 获取post信息
userName = request.POST.get('name')
password = request.POST.get('pwd')
user = authenticate(username=userName,password=password)
if user:
dict['status'] = 200
dict['msg'] = '登陆成功'
#把user对象放到request对象中,所有的request对象都拥有这个对象
login(request,user)
return JsonResponse(dict)
else:
dict['status'] = 100
dict['msg'] = '用户名或密码不正确'
return JsonResponse(dict)
else:
return render(request,'AuthTest/index_page.html') #添加装饰器,设置登录展示,没有登录的时候直接跳到登录界面
@login_required(login_url='/index/')
def login_success(request):
print(request.user)
# 这个判断由装饰器实现了
if request.user.is_authenticated:
return render(request, 'AuthTest/login_success.html')
else:
return render(request, 'AuthTest/index_page.html') def auth_logout(request):
logout(request)
return render(request, 'AuthTest/index_page.html')

demo地址.

Django--Auth模块使用的更多相关文章

  1. django ---Auth模块

    Auth模块 本文目录 1 Auth模块是什么 2 auth模块常用方法 3 扩展默认的auth_user表 回到目录 1 Auth模块是什么 Auth模块是Django自带的用户认证模块: 我们在开 ...

  2. Django-中间件-csrf扩展请求伪造拦截中间件-Django Auth模块使用-效仿 django 中间件配置实现功能插拔式效果-09

    目录 昨日补充:将自己写的 login_auth 装饰装在 CBV 上 django 中间件 django 请求生命周期 ***** 默认中间件及其大概方法组成 中间件的执行顺序 自定义中间件探究不同 ...

  3. Django—auth模块

    auth模块简介 auth模块是对登录认证方法的一种封装,之前我们获取用户输入的用户名及密码后需要自己从user表里查询有没有用户名和密码符合的对象, 而有了auth模块之后就可以很轻松的去验证用户的 ...

  4. Django Auth模块及User对象方法

    一:Django的用户认证 from django.contrib import auth django.contrib.auth中提供了许多方法,这里主要介绍其中的三个: 1:authenticat ...

  5. Django (auth模块、User对象、用户认证、线上-用户认证)

    一.auth模块 django.contrib.auth中提供了许多方法,这里主要介绍其中的三个: authenticate()    提供了用户认证,即验证用户名以及密码是否正确,一般需要usern ...

  6. Django——Auth模块(用户认证模块)

    1.Auth模块简介 auth模块是对登录认证方法的一种封装,之前我们获取用户输入的用户名及密码后需要自己从user表里查询有没有用户名和密码符合的对象. 而有了auth模块之后就可以很轻松的去验证用 ...

  7. Python - Django - auth 模块

    生成数据库 查看 auth_user 数据库 给 auth_user 表创建一个超级用户 邮箱地址可以不写 再看一下 auth_user 表 密码被加密了 login.html: <!DOCTY ...

  8. 1205 CSRF跨站请求与django中的auth模块使用

    目录 今日内容 昨日回顾 基于配置文件的编程思想 importlib模块 简单代码实现 跨站请求伪造csrf 1. 钓鱼网站 如何实现 模拟该现象的产生 2. 解决问题 解决 {% csrf_toke ...

  9. Django之auth模块(用户认证)

    auth模块简介 auth模块是对登录认证方法的一种封装,之前我们获取用户输入的用户名及密码后需要自己从user表里查询有没有用户名和密码符合的对象, 而有了auth模块之后就可以很轻松的去验证用户的 ...

  10. Django自带的用户认证auth模块

    一.介绍 基本上在任何网站上,都无可避免的需要设计实现网站的用户系统.此时我们需要实现包括用户注册.用户登录.用户认证.注销.修改密码等功能. 使用Django,我们可以不需要自己写这些功能,因为Dj ...

随机推荐

  1. 考研结束-开启新生活---markdown语法

    markdown语法 考研结束,正式开始提高自己的技术储备. 第一步当然是找到自己原先的博客园,记录下自己的足迹 将博客园设置为markdown编辑器 找到一篇关于markdown的语法介绍 原博文链 ...

  2. Test 6.23 T1 扫雷

    题目背景 题目描述 输入格式 输出格式 样例输入输出 数据范围 解析 我们设两个作弊器的参数分别为\((a_1,b_1)\)和\((a_2,b_2)\),那么设 \[ S1=\frac{a_1}{b_ ...

  3. 实现bind函数

    面试中碰到的bind函数,今天来研究下 //1.bind的返回值是函数 var obj={ name:"zhouy" } function f() { console.log(th ...

  4. common pom

    <dependencies> <dependency> <groupId>com.github.pagehelper</groupId> <art ...

  5. MaxCompute按量计费计算任务消费监控告警

    MaxCompute 按量计费资源为弹性伸缩资源,对于计算任务,按任务需求提供所需资源,对资源使用无限制,同时MaxCompute按量计费的账单为天账单,即当天消费需要第二天才出账,因此,有必要对计算 ...

  6. POJ 1797 Heavy Transprotation ( 最短路变形 || 最小生成树 )

    题意 : 找出 1 到 N 点的所有路径当中拥有最大承载量的一条路,输出这个最大承载量!而每一条路的最大承载量由拥有最大承载量的那一条边决定 分析 : 与 POJ 2253 相似且求的东西正好相反,属 ...

  7. 用三目运算,与if判断 函数调用 达到相同判定作用

    三目运算符:     操作数1 ? 操作数2 : 操作数3   (操作数1位bool类型,操作数2和操作数3为两个相同的任何类型) 返回结果:如果操作数1判定结果为真,则将操作数2作为返回结果如果操作 ...

  8. php面试专题---7、文件及目录处理考点

    php面试专题---7.文件及目录处理考点 一.总结 一句话总结: 用脑子:基本文件操作和目录操作了解一波,不必强求 1.不断在文件hello.txt头部写入一行“Hello World”字符串,要求 ...

  9. 术语-BLOB:BLOB

    ylbtech-术语-Blob:Blob 计算机视觉中的Blob是指图像中的一块连通区域,Blob分析就是对前景/背景分离后的二值图像,进行连通域提取和标记.标记完成的每一个Blob都代表一个前景目标 ...

  10. DHCP原理

    一台主机的ip地址可用通过两种方式来设置.1 手动输入:2 自动向DHCP服务器获取.手动输入会出现错误,比如输入一个已经分配的ip地址,当内网机器只有几台,十几台还可以忍受,如果是几百台呢,不可能一 ...