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

 更新时间:2020年03月02日 11:42:12   作者:pfeiliu  
这篇文章主要介绍了Django认证系统user对象实现过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

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表

创建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表,密码已经改变

认证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

验证成功,已激活

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

相关文章

  • Python中numpy数组真值判断的实现

    Python中numpy数组真值判断的实现

    在Python编程中,经常需要对数组进行真值判断,本文就来介绍一下Python中numpy数组真值判断的实现,具有一定的参考价值,感兴趣的可以了解一下
    2023-09-09
  • Python文件操作类操作实例详解

    Python文件操作类操作实例详解

    这篇文章主要介绍了Python文件操作类操作实例代码,需要的朋友可以参考下
    2014-07-07
  • 利用Python第三方库xlrd读取Excel中数据实例代码

    利用Python第三方库xlrd读取Excel中数据实例代码

    python操作excel主要用到xlrd和xlwt这两个库,即xlrd是读excel,xlwt是写excel的库,下面这篇文章主要给大家介绍了关于利用Python第三方库xlrd读取Excel中数据的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2022-07-07
  • Python基础之输入,输出与高阶赋值详解

    Python基础之输入,输出与高阶赋值详解

    这篇文章主要为大家介绍了Python基础之输入,输出与高阶赋值,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助
    2021-11-11
  • python中nan与inf转为特定数字方法示例

    python中nan与inf转为特定数字方法示例

    这篇文章主要给大家介绍了将python中nan与inf转为特定数字的方法,文中给出了详细的示例代码和运行结果,对大家的理解和学习具有一定的参考学习价值,需要的朋友们下面来一起看看吧。
    2017-05-05
  • Python reques接口测试框架实现代码

    Python reques接口测试框架实现代码

    这篇文章主要介绍了Python reques接口测试框架实现代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-07-07
  • Python中OpenCV Tutorials 20  高动态范围成像的实现步骤

    Python中OpenCV Tutorials 20  高动态范围成像的实现步骤

    这篇文章主要介绍了OpenCV Tutorials 20 - 高动态范围成像,本文还给大家展示了一种称为曝光融合的替代方法,它可以产生低动态范围的图像,需要的朋友可以参考下
    2022-06-06
  • Python之变量类型和if判断方式

    Python之变量类型和if判断方式

    这篇文章主要介绍了Python之变量类型和if判断方式,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-05-05
  • Python基础之高级变量类型实例详解

    Python基础之高级变量类型实例详解

    这篇文章主要介绍了Python基础之高级变量类型,结合实例形式详细分析了Python元组、字典、字符串、公共方法以及遍历、切片等常见操作技巧,需要的朋友可以参考下
    2020-01-01
  • Python 实现图像合成微缩效果

    Python 实现图像合成微缩效果

    合成微缩是一个使真实大小物体照片看起来像微缩模型照片的过程,也称为 Diorama Effect/Fillusion,照片的模糊部分模拟了通常在特写摄影中通常遇到的近景深度,从而使场景看起来比实际场景小得多,这篇文章主要介绍了Python 合成微缩效果,需要的朋友可以参考下
    2023-03-03

最新评论