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实现分析apache和nginx日志文件并输出访客ip列表的方法
Apr 04 Python
Windows下Python2与Python3两个版本共存的方法详解
Feb 12 Python
Python基于回溯法子集树模板解决旅行商问题(TSP)实例
Sep 05 Python
python+matplotlib实现动态绘制图片实例代码(交互式绘图)
Jan 20 Python
cmd运行python文件时对结果进行保存的方法
May 16 Python
python opencv实现旋转矩形框裁减功能
Jul 25 Python
基于Python3.6+splinter实现自动抢火车票
Sep 25 Python
使用python批量修改文件名的方法(视频合并时)
Mar 24 Python
Django项目之Elasticsearch搜索引擎的实例
Aug 21 Python
Python3 文章标题关键字提取的例子
Aug 26 Python
使用pymysql查询数据库,把结果保存为列表并获取指定元素下标实例
May 15 Python
Python如何实现定时器功能
May 28 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中PDO的错误处理
2011/09/04 PHP
PHP模拟asp.net的StringBuilder类实现方法
2015/08/08 PHP
谈谈从phpinfo中能获取哪些值得注意的信息
2017/03/28 PHP
PHP 文件上传限制问题
2019/09/01 PHP
Prototype使用指南之selector.js
2007/01/10 Javascript
javascript 用函数语句和表达式定义函数的区别详解
2014/01/06 Javascript
把文本中的URL地址转换为可点击链接的JavaScript、PHP自定义函数
2014/07/29 Javascript
nodejs中实现路由功能
2014/12/29 NodeJs
详解JavaScript中Hash Map映射结构的实现
2016/05/21 Javascript
有关jQuery中parent()和siblings()的小问题
2016/06/01 Javascript
AngularJS ng-mousedown 指令
2016/08/02 Javascript
jQuery中layer分页器的使用
2017/03/13 Javascript
使用AngularJS对表单提交内容进行验证的操作方法
2017/07/12 Javascript
使用Vue.js和Flask来构建一个单页的App的示例
2018/03/21 Javascript
原生JS实现的轮播图功能详解
2018/08/06 Javascript
python动态加载包的方法小结
2016/04/18 Python
对python append 与浅拷贝的实例讲解
2018/05/04 Python
使用11行Python代码盗取了室友的U盘内容
2018/10/23 Python
解决python3中cv2读取中文路径的问题
2018/12/05 Python
python3读取csv文件任意行列代码实例
2020/01/13 Python
python爬取2021猫眼票房字体加密实例
2021/02/19 Python
收集的7个CSS3代码生成工具
2010/04/17 HTML / CSS
万得城电器土耳其网站:欧洲第一大电子产品零售商
2016/10/07 全球购物
Bibloo荷兰:女士、男士和儿童的服装、鞋子和配饰
2019/02/25 全球购物
美国气象仪器、花园装饰和墙壁艺术商店:Wind & Weather
2019/05/29 全球购物
eharmony澳大利亚:网上约会服务
2020/02/29 全球购物
Chinti & Parker官网:奢华羊绒女装和创新针织设计
2021/01/01 全球购物
应届生污水处理求职信
2013/11/06 职场文书
机械绘图员岗位职责
2013/11/19 职场文书
应届毕业生求职信范例分享
2013/12/17 职场文书
制药工程专业毕业生推荐信
2013/12/24 职场文书
师范教师专业大学生职业生涯规划范文
2014/03/02 职场文书
CSS精灵图的原理与使用方法介绍
2022/03/17 HTML / CSS
Python OpenGL基本配置方式
2022/05/20 Python
Java代码规范与质量检测插件SonarLint的使用
2022/08/05 Java/Android
Python中np.random.randint()参数详解及用法实例
2022/09/23 Python