首页 > 其他分享 >Django用户认证组件 (auth模块)

Django用户认证组件 (auth模块)

时间:2023-05-28 23:46:05浏览次数:40  
标签:用户 auth 认证 session user 组件 Django

1、导入 auth 模块

# 认证模块
from django.contrib import auth

# 对应数据库用户表,可以继承扩展
from django.contrib.auth.models import User

  

2、创建用户对象

create():创建一个普通用户,密码是明文的。
create_user():创建一个普通用户,密码是密文的。
create_superuser():创建一个超级用户,密码是密文的,要多传一个邮箱 email 参数。

  

3、用户认证

auth.authenticate(username,password) 
# 将输入的密码转为密文去认证,认证成功返回用户对象,失败则返回None

  

4、登录退出

from django.contrib import auth

auth.login()      # 该函数接受一个HttpRequest对象,以及一个认证了的User对象。此函数使用django的session框架给某个已认证的用户附加上session id等信息。

auth.logout()     # 该函数接受一个HttpRequest对象,无返回值。当调用该函数时,当前请求的session信息会全部清除。该用户即使没有登录,使用该函数也不会报错。

  

5、request.user

 

Django有一个默认中间件,叫做AuthenticationMiddleware,每次请求进来都会去session中取一个userid,取不到的话,赋值request.user = AnonymousUser() , 一个匿名用户对象。

 

当用户组件auth.login一旦执行,将userid到session中后,再有请求进入Django,将注册的userid对应的user对象赋值给request.user,即再后面的任何视图函数中都可以从request.user中取到该客户端的登录对象。

 

 

 

标签:用户,auth,认证,session,user,组件,Django
From: https://www.cnblogs.com/zhangyh-blog/p/17439168.html

相关文章

  • mysql从库执行同步后,查看状态显示"Authentication requires secure connection"异常
    问题描述:mysql从库执行同步后,查看状态显示"Authenticationrequiressecureconnection"异常,如下所示:数据库:mysql8.0.27系统:rhel7.31、异常重现mysql>changemastertomaster_host='192.168.133.111',master_user='repluser',master_password='repluser�......
  • django多表关联实战
    定义模型类:fromdjango.dbimportmodelsfromdjango.contrib.auth.modelsimportUser'''----------Django-ORM多表关联----------''''''需要创建的表:1.书籍表2.出版社表3.作者表4.作者详情表'''�......
  • 微信小程序常用的view、text、button、image组件
    【黑马程序员前端微信小程序开发教程,微信小程序从基础到发布全流程_企业级商城实战(含uni-app项目多端部署)】https://www.bilibili.com/video/BV1834y1676P/?p=9&share_source=copy_web&vd_source=03c1dc52eeb3747825ecad0412c18ab1这个系列是用来放代码的,方便view普通视图......
  • django中的多表关联
    一、三种关联情况 二、ORM的正向操作和反向操作1.正向操作:一个模型中定义了一个外键,通过该模型对该外键操作的操作叫做正向操作。2.反向操作:被外键所关联的模型,通过该模型对外键所在模型的操作叫做反向操作。  -------------------  关联表的详细使用方式,引用:“ ......
  • django_ORM_数据库取值
    #查询方法1:直接查询models.Info_Phone.objects.filter(mobile="157137632",id=2)#查询方法2:把查询条件放在字典里面data_list={"mobile":"157137632","id":2}models.Info_Phone.objects.filter(**data_l......
  • 【React工作记录七十一】直接用ref控制子组件弹框的开启
     前言我是歌谣我有个兄弟巅峰的时候排名c站总榜19叫前端小歌谣曾经我花了三年的时间创作了他现在我要用五年的时间超越他今天又是接近兄弟的一天人生难免坎坷大不了从头再来歌谣的意志是永恒的放弃很容易但是坚持一定很酷导语如何直接通过父组件直接改变子组件的状态编......
  • 从gitee上拉取django项目到Linux中
    1.从gitee拉取django项目: 2.安装虚拟环境: 3.创建虚拟环境: 4.进入虚拟环境: 5.安装项目模块: ......
  • Vue引入Element组件
    直接在VSCode的VueCLI的项目里进行npm安装,终端输入npmielement-ui-S显示报错信息,-4048,看了一下应该是我权限不够,虽然这里的VSCode也是Powershell的终端命令。 打开桌面主菜单,选择管理员命令行,切换到指定的文件下,然后安装element,成功!! 复盘一下发现,应该是我的VSCode打开......
  • {{ form.as_ul }} – Render Django Forms as list
    DjangoformsareanadvancedsetofHTMLformsthatcanbecreatedusingpythonandsupportallfeaturesofHTMLformsinapythonicway.RenderingDjangoFormsinthetemplatemayseemmessyattimesbutwithproperknowledgeofDjangoFormsandattribut......
  • Nginx配置Basic_Auth登录认证
    一般来说,僵尸网络的扫描行为都是全互联网大范围进行的,并且所探测的漏洞大多都是一些新爆发的cms漏洞(ThinkPHP)、或者是一些常见的框架组件漏洞(如Struts2),针对该特性,我们可以配置BasicAuth登录认证(ngx_http_auth_basic_module),来减少僵尸网络对我们web服务的侵扰。注:BasicAuth......