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实现数通设备tftp备份配置文件示例
Apr 02 Python
python使用三角迭代计算圆周率PI的方法
Mar 20 Python
python字典基本操作实例分析
Jul 11 Python
Python中的字符串操作和编码Unicode详解
Jan 18 Python
Python使用pickle模块存储数据报错解决示例代码
Jan 26 Python
python3.6.3+opencv3.3.0实现动态人脸捕获
May 25 Python
pandas使用apply多列生成一列数据的实例
Nov 28 Python
python 计算数据偏差和峰度的方法
Jun 29 Python
Python 点击指定位置验证码破解的实现代码
Sep 11 Python
Python+appium框架原生代码实现App自动化测试详解
Mar 06 Python
Python爬取数据并实现可视化代码解析
Aug 12 Python
Python实现Hash算法
Mar 18 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
WordPress中编写自定义存储字段的相关PHP函数解析
2015/12/25 PHP
PHP实现在对象之外访问其私有属性private及保护属性protected的方法
2017/11/20 PHP
php xhprof使用实例详解
2019/04/15 PHP
浅析PHP反序列化中过滤函数使用不当导致的对象注入问题
2020/02/15 PHP
javascript高级编程之函数表达式 递归和闭包函数
2015/11/29 Javascript
浅谈vue-router2路由参数注意的问题
2017/11/08 Javascript
vue 添加vux的代码讲解
2017/11/30 Javascript
JS字符串与二进制的相互转化实例代码详解
2019/06/28 Javascript
Angular8引入百度Echarts进行图表分析的实现代码
2019/11/27 Javascript
使用JavaScript获取扫码枪扫描得到的条形码的思路代码详解
2020/06/10 Javascript
[10:49]2014国际邀请赛 叨叨刀塔第二期为真正的电竞喝彩
2014/07/21 DOTA
[01:09:24]Ti4开幕式
2014/07/19 DOTA
用python实现的可以拷贝或剪切一个文件列表中的所有文件
2009/04/30 Python
使用Python的PEAK来适配协议的教程
2015/04/14 Python
python搭建微信公众平台
2016/02/09 Python
Go/Python/Erlang编程语言对比分析及示例代码
2018/04/23 Python
Python 创建空的list,以及append用法讲解
2018/05/04 Python
使用Rasterio读取栅格数据的实例讲解
2019/11/26 Python
Python实现线性判别分析(LDA)的MATLAB方式
2019/12/09 Python
python输出pdf文档的实例
2020/02/13 Python
使用wxpy实现自动发送微信消息功能
2020/02/28 Python
Python之Django自动实现html代码(下拉框,数据选择)
2020/03/13 Python
Python使用文件操作实现一个XX信息管理系统的示例
2020/07/02 Python
HTML5 新标签全部总汇(推荐)
2016/06/13 HTML / CSS
h5网页水印SDK的实现代码示例
2019/02/19 HTML / CSS
波兰购物网站:MALL.PL
2019/05/01 全球购物
美国渔具店:FishUSA
2019/08/07 全球购物
元宵节晚会主持人串词
2014/03/25 职场文书
年会主持词结束语
2014/03/27 职场文书
学生会竞选演讲稿怎么写
2014/08/26 职场文书
教师党的群众路线教育实践活动个人整改措施
2014/11/04 职场文书
三下乡个人总结
2015/03/04 职场文书
2015暑假社会调查报告
2015/07/13 职场文书
CSS3实现的侧滑菜单
2021/04/27 HTML / CSS
Feign调用全局异常处理解决方案
2021/06/24 Java/Android
Mysql数据库表中为什么有索引却没有提高查询速度
2022/02/24 MySQL