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 专题四 文件基础知识
Mar 20 Python
Python可变参数*args和**kwargs用法实例小结
Apr 27 Python
Python+selenium 获取一组元素属性值的实例
Jun 22 Python
对python sklearn one-hot编码详解
Jul 10 Python
python中字符串数组逆序排列方法总结
Jun 23 Python
解决Pycharm 包已经下载,但是运行代码提示找不到模块的问题
Aug 31 Python
python 错误处理 assert详解
Apr 20 Python
Python爬虫实例——scrapy框架爬取拉勾网招聘信息
Jul 14 Python
python中sys模块是做什么用的
Aug 16 Python
python 监控logcat关键字功能
Sep 04 Python
python 利用toapi库自动生成api
Oct 19 Python
Python django中如何使用restful框架
Jun 23 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的图形函数中显示汉字
2006/10/09 PHP
PHP 巧用数组降低程序的时间复杂度
2010/01/01 PHP
通过dbi使用perl连接mysql数据库的方法
2014/04/16 PHP
phpstudy隐藏index.php的方法
2020/09/21 PHP
javascript算法学习(直接插入排序)
2011/04/12 Javascript
A标签中通过href和onclick传递的this对象实现思路
2013/04/19 Javascript
鼠标移动到图片名上,显示图片的简单实例
2013/07/14 Javascript
JavaScript中的闭包介绍
2015/03/15 Javascript
jquery验证手机号是否正确实例讲解
2015/11/17 Javascript
jQuery语法小结(超实用)
2015/12/31 Javascript
JS模拟的Map类实现方法
2016/06/17 Javascript
jQuery 获取遍历获取table中每一个tr中的第一个td的方法
2016/10/05 Javascript
node.js学习之事件模块Events的使用示例
2017/09/28 Javascript
JS使用setInterval实现的简单计时器功能示例
2018/04/19 Javascript
Vue+Vant 图片上传加显示的案例
2020/11/03 Javascript
Python中使用urllib2防止302跳转的代码例子
2014/07/07 Python
详解tensorflow实现迁移学习实例
2018/02/10 Python
Python 实现Windows开机运行某软件的方法
2018/10/14 Python
python将txt等文件中的数据读为numpy数组的方法
2018/12/22 Python
python使用参数对嵌套字典进行取值的方法
2019/04/26 Python
全面了解django的缓存机制及使用方法
2019/07/22 Python
python实现H2O中的随机森林算法介绍及其项目实战
2019/08/29 Python
win10下安装Anaconda的教程(python环境+jupyter_notebook)
2019/10/23 Python
python 已知一个字符,在一个list中找出近似值或相似值实现模糊匹配
2020/02/29 Python
利用python清除移动硬盘中的临时文件
2020/10/28 Python
python中编写函数并调用的知识点总结
2021/01/13 Python
大学生最常用的自我评价
2013/12/07 职场文书
仓库门卫岗位职责
2013/12/22 职场文书
18岁生日感言
2014/01/12 职场文书
食品采购员岗位职责
2014/04/14 职场文书
党员对照检查材料思想汇报(党的群众路线)
2014/09/24 职场文书
大学生党员批评与自我批评范文
2014/10/14 职场文书
学生保证书
2015/01/16 职场文书
初中班主任培训心得体会
2016/01/07 职场文书
转变工作作风心得体会
2016/01/23 职场文书
室外天线与收音机天线杆接合方法
2022/04/05 无线电