本篇内容

介绍Django框架提供的auth 认证系统

方法:

方法名

备注

create_user

创建用户

authenticate

登录验证

login

记录登录状态

logout

退出用户登录

is_authenticated

判断用户是否登录

login_required装饰器

进行登录判断

引入模块

from django.contrib import auth

登录认证

user = auth.authenticate(username=username, password=pwd)if user is not None:# 将登录的用户封装到request.user# 在中间件中 process_request 中每次都这样子处理# id = request.session.get("user_id") 得到id# user = auth.User.objects.get(id=id)# request.user = userauth.login(request, user=user)return redirect("/index/")

验证通过则返回user,没有则返回None,在 login 函数中将认证通过的用户赋值给 request.user 属性,以及内部的 session 操作。 封装request.user = user

认证装饰器  login_required

from django.contrib.auth.decorators import login_required@login_required
def index(request):print(request.user.username)return render(request, "index.html")

需要配置登录视图的url,所以需要在 settings 文件中配置如下:

# 如果没有登录 默认跳转的url
LOGIN_URL = "/login/"

创建用户

1.普通用户

from django.contrib.auth.models import User# 加密的user = User.objects.create_user(username="tanglaoer2", password="tanglaoer")user.set_password("tang")user.save()

2.超级用户

user = User.objects.create_superuser(username="tanglaoer2", password="tanglaoer")
user.set_password("tang")
user.save()

注销

auth.logout(request)

内部相当于 request.session.flush()

扩展自带的auth_user表

1.新建一个表, 一对一关联上面的auth_user表

或者新建一个表,继承的方式

from django.contrib.auth.models import AbstractUserclass UserInfo(AbstractUser):phone = models.CharField(max_length=11)addr = models.CharField(max_length=128)

相当于对默认的 auth_user 表做了扩展, 并且代替 auth_user ,还需要在配置文件 settings 中进行如下配置:

# 如果使用继承的方式 继承auth的models,要在settings.py里面配置 默认用户认证时使用的哪张表
AUTH_USER_MODEL = "app.UserInfo"

auth认证还是使用 auth   只是创建用户的时候改为 用 UserInfo

转载于:https://www.cnblogs.com/tangkaishou/p/10226579.html

Django 【认证系统】auth相关推荐

  1. Django的认证系统(auth)

    Django自带的用户认证 : 在开发一个网站时, 无可避免的需要设计实现网站的用户系统. 此时我们需要实现包括用户注册, 用户登录, 用户认证, 注销, 修改密码等功能. Django作为一个完美主 ...

  2. django 1.8 官方文档翻译:使用Django认证系统

    使用Django认证系统 这篇文档解释默认配置下Django认证系统的使用.这些配置已经逐步可以满足大部分常见项目对的需要,可以处理范围非常广泛的任务,且具有一套细致的密码和权限实现.对于需要与默认配 ...

  3. django认证系统实现自定义权限管理的方法 - python

    文章来源:嗨学网 敏而好学论坛www.piaodoo.com 欢迎大家相互学习 本文记录使用django自带的认证系统实现自定义的权限管理系统,包含组权限.用户权限等实现. 0x01. django认 ...

  4. django 1.8 官方文档翻译:13-1-2 使用Django认证系统

    使用Django认证系统 这篇文档解释默认配置下Django认证系统的使用.这些配置已经逐步可以满足大部分常见项目对的需要,可以处理范围非常广泛的任务,且具有一套细致的密码和权限实现.对于需要与默认配 ...

  5. 43.Django权限系统auth模块详解

    昨天我们为了登录admin,通过命令创建了超级用户,你是不是有个疑问--这创建的超级用户的信息是存放在哪里了呢?   这就想到了我们映射数据库时,Django自动创建的一些表(这也是之前进行数据库迁移 ...

  6. Django的自带认证系统——auth模块

    Django自带的用户认证 auth模块 from django.contrib import auth 备注:使用auth模块时,我们默认使用Django提供的auth_user表,创建数据时,可以 ...

  7. Django——认证系统(Day72)

    阅读目录 COOKIE 与 SESSION 用户认证 COOKIE 与 SESSION 概念 cookie不属于http协议范围,由于http协议无法保持状态,但实际情况,我们却又需要"保持 ...

  8. Django权限系统auth模块详解

    转自:原文出处 auth模块是Django提供的标准权限管理系统,可以提供用户身份认证, 用户组和权限管理. auth可以和admin模块配合使用, 快速建立网站的管理系统. 在INSTALLED_A ...

  9. Django默认用户认证系统和用户模型类

    Django默认用户认证系统和用户模型类 1.Django默认用户认证系统 Django自带用户认证系统 Django认证系统位置 Django认证系统同时处理认证和授权 Django认证系统包含的内 ...

  10. 【Django】认证系统

    目录 #. auth模块 1. 认证 authenticate() 2. 登陆 login(HttpRequest, user) 3. 注销 logout(request) 4. 认证判断 is_au ...

最新文章

  1. QIIME 2教程. 24Python命令行模式Artifact API(2020.11)
  2. Linux之traceroute命令使用详解—网络故障定位(三)
  3. NPashaP的二分图源码部分
  4. 面向对象设计原则OO
  5. C#中的Lock锁深入理解
  6. 您不想错过的十大Java书籍
  7. [转]在资源管理器中使鼠标右键增加一个命令,运行cmd,同时使得当前路径为资源管理器当前的目录...
  8. 关于页面布局间距使用的经验之谈
  9. Pandas DateOffset
  10. sql server端口_SQL Server端口概述
  11. 勘测定界坐标导入cad
  12. 使用百度 EasyDL 实现电动车进电梯自动预警
  13. torch.max使用示例
  14. 家用洗地机买什么牌子好一点?家用洗地机推荐
  15. 淘宝号搜索标签查询,买家标签查询、人群标签查询、淘宝号搜索打标接口、买家标签查询接口、人群标签查询接口
  16. java发牌_Java 扑克牌发牌
  17. 【HR-VITON】虚拟换衣算法pre-processing复现全过程记录
  18. macOS Catalina 10.15.7正式版 CDR/ISO镜像 for VMware
  19. R语言使用car包的vif函数计算方差膨胀因子,并基于方差膨胀因子开方后和阈值(2)的判断来确认模型特征(预测变量)之间是否存在多重共线性(Multicollinearity)
  20. FCF中文指南-第七章--FusionCharts Free和XML

热门文章

  1. android根据mac地址连接耳机,Android获取设备IMEI和Mac地址
  2. 点云数据显示_vispy 显示 kitti 点云数据
  3. java springmvc 数据库事务_事务的简单回顾_JavaEE框架(Maven+SpringMvc+Spring+MyBatis)全程实战教程_Java视频-51CTO学院...
  4. php代码清除空格注解,去除php注释和去除空格函数分享
  5. C语言switch中break的作用,C语言中switch...case语句中break的重要性
  6. 后台系统可扩展性学习笔记(五)负载均衡
  7. 《线程管理:线程基本操作》
  8. LeetCode 101. 对称二叉树 思考分析
  9. scala char_Scala中的Char数据类型
  10. html上下滚动切换顶端tab,jQuery实现Tab菜单滚动切换的方法