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的Tornado框架对子域名和泛域名的支持
May 02 Python
python抓取百度首页的方法
May 19 Python
Python基于pygame实现的font游戏字体(附源码)
Nov 11 Python
Python聊天室实例程序分享
Jan 05 Python
Python中用post、get方式提交数据的方法示例
Sep 22 Python
python读取文本绘制动态速度曲线
Jun 21 Python
python实现的Iou与Giou代码
Jan 18 Python
Python网络爬虫信息提取mooc代码实例
Mar 06 Python
Python基于pip实现离线打包过程详解
May 15 Python
pytorch判断是否cuda 判断变量类型方式
Jun 23 Python
Python Tornado核心及相关原理详解
Jun 24 Python
Python中logger日志模块详解
Aug 04 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
php构造函数的继承方法
2015/02/09 PHP
php将金额数字转化为中文大写
2015/07/09 PHP
JavaScript静态的动态
2006/09/18 Javascript
JQuyer $.post 与 $.ajax 访问WCF ajax service 时的问题需要注意的地方
2011/09/20 Javascript
自动刷新网页,自动刷新当前页面,JS调用
2013/06/24 Javascript
JS使用for循环遍历Table的所有单元格内容
2014/08/21 Javascript
解决jquery版本冲突的有效方法
2014/09/02 Javascript
JS实现网页右侧带动画效果的伸缩窗口代码
2015/10/29 Javascript
jQuery+jsp下拉框联动获取本地数据的方法(附源码)
2015/12/03 Javascript
实例详解AngularJS实现无限级联动菜单
2016/01/15 Javascript
详解jquery事件delegate()的使用方法
2016/01/25 Javascript
npm国内镜像 安装失败的几种解决方案
2017/06/04 Javascript
JavaScript实现图片拖曳效果
2017/09/08 Javascript
微信小程序实现跑马灯效果完整代码(附效果图)
2018/05/30 Javascript
在vue中安装使用vux的教程详解
2018/09/16 Javascript
Javascript实现动态时钟效果
2018/11/17 Javascript
JSON获取属性值方法代码实例
2020/06/30 Javascript
python模块restful使用方法实例
2013/12/10 Python
python处理csv数据的方法
2015/03/11 Python
python字典多键值及重复键值的使用方法(详解)
2016/10/31 Python
在 Python 应用中使用 MongoDB的方法
2017/01/05 Python
Python代码实现删除一个list里面重复元素的方法
2019/04/02 Python
Python中的十大图像处理工具(小结)
2019/06/10 Python
python3 selenium自动化 frame表单嵌套的切换方法
2019/08/23 Python
Python实现元素等待代码实例
2019/11/11 Python
利用python控制Autocad:pyautocad方式
2020/06/01 Python
国际礼品店:GiftsnIdeas
2018/05/03 全球购物
致1500米运动员广播稿
2014/02/07 职场文书
开工仪式主持词
2014/03/20 职场文书
团队精神的演讲稿
2014/05/14 职场文书
公司节能减排方案
2014/05/16 职场文书
学校搬迁方案
2014/06/15 职场文书
房屋租赁协议书
2014/10/18 职场文书
解除处分决定书
2015/06/25 职场文书
优质护理服务心得体会
2016/01/22 职场文书
详解用Python把PDF转为Word方法总结
2021/04/27 Python