Django之auth

2023-05-16

一:auth基础

(1)作用:django提供给开发人员 对用户进行操作的模块的

例如:登录 注册 认证 注销等等

(2)使用方式


from django.contrib import auth  

二:方法介绍

(1)authenticate()

  (1)提供了用户认证功能

  (2)如果认证成功会返回一个用户对象


<p>用户名称:<input type="text" name="username"></p>
<p>用户密码:<input type="text" name="password"></p>
<input type="submit">

from django.contrib import auth
def user(request):
    if request.method == 'POST':
        username = request.POST.get('username')
        password = request.POST.get('password')  

      user_obj = auth.authenticate(username=username,password=password)  

return render(request,'user.html')  


user_obj = auth.authenticate(username=username,password=password)
        print(user_obj)   # admin 对象
        print(user_obj.username)  # admin
        print(user_obj.password) # pbkdf2_sha256$36000$qVMoNB0niRMM$Z+32NPaCez7yHBcLokJq+KSzmkdv3vetY+tFvhGCrC8= 密码  

(2)login(HttpRequest, user)

  (1)接受前端输入的数据

  (2)给前端用户设置session值


        auth.login(request,user_obj)  

PS:

  (1)只要执行此代码 就可以再任意位置获取用户对象

  (2)如果用户对象不存在 会返回一个匿名对象

(3)is_authenticated

  (1)查看对象是否登录

  (2)如果登录返回true 反之返回false


request.user.is_authenticated  

(4)check_password

  (1)检验密码是否正确

  (2)其会将用户输入的密码自动进行加密 与后端数据库进行比较


request.user.check_password(密码)  

(5)set_password

  (1)将原有的密码进行更改

  (2)进行更改之后一定要执行save命令


request.user.set_password(new_password)
request.user.save()   

(6)auth.logout(request) 

  (1)将数据库与浏览器中的数据都会清除

  (2)类似于request.session.flush


auth.logout(request)   

(7)login_requied


from django.contrib.auth.decorators import  login_required
@login_required(login_url='/xxx/')  # 局部配置
def index(request):
    pass  

PS:

  (1)如果不指定login_url参数 如果用户没有登录会跳转到一个奇怪的页面

  (2)指定可以跳转到指定页面


# 全局配置  settings文件中
LOGIN_URL = '/xxx/'

(8)创建用户


# User.objects.create(username =username,password=password)  # 创建用户名的时候 千万不要再使用create 了
# User.objects.create_user(username =username,password=password)  # 创建普通用户
User.objects.create_superuser(username =username,password=password,email='123@qq.com') # 创建超级用户 邮箱必填

三:自定义auth_user表格


from django.contrib.auth.models import AbstractUser  



# 使用类的继承 class Userinfo(AbstractUser): # 千万不要跟原来表中的字段重复 只能创新 phone = models.BigIntegerField() avatar = models.CharField(max_length=32) # 一定要在配置文件中 告诉django # 告诉django orm不再使用auth默认的表 而是使用你自定义的表 AUTH_USER_MODEL = 'app01.Userinfo' # '应用名.类名'

PS:

  (1)执行数据库迁移命令
  (2)所有的auth模块功能 全部都基于你创建的表
  (3)而不再使用auth_user

 

转载于:https://www.cnblogs.com/SR-Program/p/11588355.html

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Django之auth 的相关文章

随机推荐

  • unity视频教程

    英雄联盟教程 http pan baidu com s 1i3rkMS9 密码 bv6r https pan baidu com share link shareid 61 2589856556 amp uk 61 371904234 li
  • 相册列表 鼠标悬停显示照片介绍

    lt DOCTYPE HTML PUBLIC 34 W3C DTD HTML 4 01 Transitional EN 34 34 http www w3 org TR html4 loose dtd 34 gt lt html gt lt
  • 图书管理系统(毕业论文)

    毕 业 设 计 论 文 题 目 xff1a 图书管理系统 院 系 xff1a 计算机学院 专 业 xff1a 软件技术 姓 名 xff1a XXX 指导教师 xff1a XX 2017年 10 月 23 日 1 引言 5 2 相关技术突破
  • C#中定义数组--字符串及数组操作

    一 一维 xff1a int numbers 61 new int 1 2 3 4 5 6 不定长 int numbers 61 new int 3 1 2 3 定长 二 多维 int numbers 61 new int 1 2 3 1
  • 迭代器分类

    输入迭代器 读 xff0c 不能写 xff1b 只支持自增运算 istream iterator 61 61 61 43 43 gt 输出迭代器 写 xff0c 不能读 xff1b 只支持自增运算 ostream iterator 43 4
  • VC++中隐藏代码

    1 引言 在VS编辑器中可以对类中的方法 注释等内容进行隐藏 xff0c 单击左侧的 号即可完成隐藏 xff0c 隐藏后变为 43 xff0c 单击 43 号可以将隐藏的代码展开 2 隐藏任意代码 如果想在编辑器中隐藏任意代码段 xff0c
  • 常见签名算法之SHA256withRSA

    概述 在https blog csdn net chinoukin article details 100934995章节中 xff0c 我介绍了用Hmac算法用于签名算法中的方法 xff0c 本章节中将对常见的签名算法 SHA256wit
  • httpclient4封装类与HttpParser封装类

    httpclient4封装类与HttpParser封装类 最近工作中需要做一个爬虫去抓取指定页面的一些内容 xff0c 准备使用HttpParser来解析页面结构 xff0c 顺便看了一下httpclient4 xff0c 可以将它们配合使
  • 【Linux操作系统分析】进程——进程切换,进程的创建和撤销

    1 进程 进程是程序执行时的一个实例 xff0c 可以把它看作充分描述程序已经执行到何种程度的数据结构的汇集 从内核的观点看 xff0c 进程的目的是担当分配系统资源 xff08 CPU时间 xff0c 内存等 xff09 的实体 xff0
  • C++中的.和::和:和->的区别

    在学习C 43 43 的过程中我们经常会用到 和 和 xff1a 和 gt xff0c 在此整理一下这些常用符号的区别 1 A B则A为对象或者结构体 xff1b 2 A gt B则A为指针 xff0c gt 是成员提取 xff0c A g
  • 通过Curl 对url进行encode操作

    最近做项目的时候 xff0c 通过 Gflags Reload 时候 发现对于某些value中包含 61 中文等字符的支持不够好 xff0c value被截断了 经过分析后 xff0c 发现程序对url切分是用 61 amp 为标准的 xf
  • STM32进阶之串口环形缓冲区实现(转载)

    转载自微信公众号 玩转单片机 xff0c 感谢原作者 杰杰 队列的概念 在此之前 xff0c 我们来回顾一下队列的基本概念 xff1a 队列 Queue xff1a 是一种先进先出 First In First Out 简称 FIFO 的线
  • 位和结构体寄存器访问方法(转)

    1 2 1 传统 define 方法 1 2 外设位域结构体方法综述 DSP281x 头文件和外设示例使用位域结构体方法 xff0c 映射和访问基于F28x 外设寄存器 本节将介绍这种方法 xff0c 并把它和传统的 define 方法加以
  • 关于将函数写入头文件问题(分离式编译)

    如果某些函数在其他很多 cpp 文件中被调用 xff0c 那么为了避免写大量重复的代码以及让代码量更小一些 xff0c 我们可以将这些函数写头文件中 xff0c 然后其他 cpp 文件只需要引用该头文件然后就可以使用包含在头文件中的函数了
  • SpringSecurity配置跨域访问

    说明 java后端web服务有很多种方法可以实现跨域访问 xff0c 配置很简单 xff0c 今天这里我们用SpringSecurity的方式配置跨域访问 xff0c 配置方法如下 xff1a span class token keywor
  • 嵌入式C语言开发---存储器与寄存器

    概述 xff1a 讲述如何使用C语言来对底层寄存器进行封装 内容 xff1a 存储器映射寄存器与寄存器映射C语言访问寄存器 存储器映射 程序存储器 数据存储器 寄存器和I O 端口排列在同一个顺序的4 GB 地 址空间内 存储器映射 xff
  • httplib用法

    httplib的内容上是很多 xff0c 也比较简单 以下是一个非常简单的例子 xff0c 使用httplib获取google首页的html xff1a import httplib conn 61 httplib HTTPConnecti
  • HTTP认证之摘要认证——Digest(一)

    导航 HTTP认证之基本认证 Basic xff08 一 xff09 HTTP认证之基本认证 Basic xff08 二 xff09 HTTP认证之摘要认证 Digest xff08 一 xff09 HTTP认证之摘要认证 Digest x
  • Linux 文件名和路径的最大长度

    在x86 64 Linux下 xff0c 文件名的最大长度是255个字符 characters xff0c 文件路径的最大长度是4096字符 characters xff0c 即可以包含16级的最大文件长度的路径 在 lt limits h
  • Django之auth

    一 xff1a auth基础 xff08 1 xff09 作用 xff1a django提供给开发人员 对用户进行操作的模块的 例如 xff1a 登录 注册 认证 注销等等 xff08 2 xff09 使用方式 from django co