Django认证系统user对象实现过程解析


Posted in Python onMarch 02, 2020

User对象

User对象是认证系统的核心。它们通常表示与你的站点进行交互的用户,并用于启用限制访问、注册用户信息和关联内容给创建者等。在Django的认证框架中只存在一种类型的用户,因此诸如'superusers'或管理员'staff'用户只是具有特殊属性集的user对象,而不是不同类型的user对象。

创建users

创建users最直接的方法是使用create_user()辅助函数:

>>> from django.contrib.auth.models import User
>>> user = User.objects.create_user('john', 'lennon@thebeatles.com', 'johnpassword')
from django.contrib.auth.models import User
def create_user(request):
  #auth_user
  # user = User.objects.create_user('john', 'lennon@thebeatles.com', 'johnpassword')
  #superuser python manage.py createsuperuser --username=joe --email=joe@example.com
  u = User.objects.get(username='john')
  u.set_password('new password')
  u.save()
  return HttpResponse("success-----%s"%u)

创建成功后见数据库auth_user表

Django认证系统user对象实现过程解析

创建superusers

使用createsuperuser命令创建superusers:

$ python manage.py createsuperuser --username=joe --email=joe@example.com

或者

$ python manage.py createsuperuser

接下来依次输入用户密码即可
成功后见auth_user表

修改密码

>>> from django.contrib.auth.models import User
>>> u = User.objects.get(username='john')
>>> u.set_password('new password')
>>> u.save()

成功后见auth_user表,密码已经改变

Django认证系统user对象实现过程解析

认证Users

authenticate(**credentials)[source]

认证一个给定用户名和密码,请使用authenticate()。它以关键字参数形式接收凭证,对于默认的配置它是username和password,如果密码对于给定的用户名有效它将返回一个User对象。如果密码无效,authenticate()返回None。例子:

from django.contrib.auth import authenticate
user = authenticate(username='john', password='secret')
if user is not None:
  # the password verified for the user
  if user.is_active:
    print()
  else:
    print()
else:
  # the authentication system was unable to verify the username and password
  print()
def auth(request):
  user = authenticate(username='john', password='new password')#john
  # user = authenticate(username='john', password='johnpassword')#None
  print(user)
  if user is not None:
    # the password verified for the user
    if user.is_active:
      print("验证成功,已激活")
    else:
      print("验证成功,未激活")
  else:
    # the authentication system was unable to verify the username and password
    print("没有此用户")
  return HttpResponse(user)

john

验证成功,已激活

Django认证系统user对象实现过程解析

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python使用百度API上传文件到百度网盘代码分享
Nov 08 Python
收集的几个Python小技巧分享
Nov 22 Python
python创建临时文件夹的方法
Jul 06 Python
windows系统下Python环境的搭建(Aptana Studio)
Mar 06 Python
Python使用pylab库实现画线功能的方法详解
Jun 08 Python
Python基于回溯法子集树模板解决找零问题示例
Sep 11 Python
python DataFrame 修改列的顺序实例
Apr 10 Python
Python日期时间Time模块实例详解
Apr 15 Python
python 上下文管理器及自定义原理解析
Nov 19 Python
Python中求对数方法总结
Mar 10 Python
Python内存映射文件读写方式
Apr 24 Python
教你使用pyinstaller打包Python教程
May 27 Python
在python中使用pymysql往mysql数据库中插入(insert)数据实例
Mar 02 #Python
Python基于requests库爬取网站信息
Mar 02 #Python
使用python3 实现插入数据到mysql
Mar 02 #Python
python数字类型math库原理解析
Mar 02 #Python
Python如何实现在字符串里嵌入双引号或者单引号
Mar 02 #Python
Python random库使用方法及异常处理方案
Mar 02 #Python
python 实现人和电脑猜拳的示例代码
Mar 02 #Python
You might like
Windows下的PHP安装文件线程安全和非线程安全的区别
2014/04/23 PHP
ThinkPHP令牌验证实例
2014/06/18 PHP
PHP如何将log信息写入服务器中的log文件
2015/07/29 PHP
PHP实现操作redis的封装类完整实例
2015/11/14 PHP
PHP使用DOM对XML解析处理操作示例
2019/07/04 PHP
php设计模式之中介者模式分析【星际争霸游戏案例】
2020/03/23 PHP
php框架CI(codeigniter)自动加载与自主创建对象操作实例分析
2020/06/06 PHP
如何在PHP中使用AES加密算法加密数据
2020/06/24 PHP
javascript基础第一章 JavaScript与用户端
2010/07/22 Javascript
js禁止小键盘输入数字功能代码
2011/08/01 Javascript
深入理解JavaScript系列(9) 根本没有“JSON对象”这回事!
2012/01/15 Javascript
jQuery $.get 的妙用 访问本地文本文件
2012/07/12 Javascript
JS,Jquery获取select,dropdownlist,checkbox下拉列表框的值(示例代码)
2014/01/11 Javascript
jQuery中attr()方法用法实例
2015/01/05 Javascript
jquery中添加属性和删除属性
2015/06/03 Javascript
javascript实现随机读取数组的方法
2015/08/03 Javascript
基于jQuery实现瀑布流页面
2017/04/11 jQuery
JS实现读取xml内容并输出到div中的方法示例
2018/04/19 Javascript
vuejs router history 配置到iis的方法
2018/09/20 Javascript
使用Vue父子组件通信实现todolist的功能示例代码
2019/04/11 Javascript
Vue CL3 配置路径别名详解
2019/05/30 Javascript
JavaScript进制转换实现方法解析
2020/01/18 Javascript
Python写的一个简单监控系统
2015/06/19 Python
numpy中实现ndarray数组返回符合特定条件的索引方法
2018/04/17 Python
python set集合使用方法解析
2019/11/05 Python
python except异常处理之后不退出,解决异常继续执行的实现
2020/04/25 Python
手机配件第一品牌:ZAGG
2017/05/28 全球购物
2014年3.15团委活动总结
2014/03/16 职场文书
幼儿园中班开学寄语
2014/04/03 职场文书
工作时间擅自离岗检讨书
2014/10/24 职场文书
先进教师个人总结
2015/02/11 职场文书
2015年八一建军节演讲稿
2015/03/19 职场文书
劳保用品管理制度范本
2015/08/06 职场文书
2016年植树节红领巾广播稿
2015/12/17 职场文书
IDEA2021.2配置docker如何将springboot项目打成镜像一键发布部署
2021/09/25 Java/Android
win10输入法不见了只能打出字母怎么解决?
2022/08/05 数码科技