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 实现文件的递归拷贝实现代码
Aug 02 Python
python 示例分享---逻辑推理编程解决八皇后
Jul 20 Python
python实现简易版计算器
Jun 22 Python
python os.listdir按文件存取时间顺序列出目录的实例
Oct 21 Python
python2和python3应该学哪个(python3.6与python3.7的选择)
Oct 01 Python
DJANGO-URL反向解析REVERSE实例讲解
Oct 25 Python
PYTHON实现SIGN签名的过程解析
Oct 28 Python
Django生成PDF文档显示网页上以及PDF中文显示乱码的解决方法
Dec 17 Python
使用PyQt5实现图片查看器的示例代码
Apr 21 Python
pytorch学习教程之自定义数据集
Nov 10 Python
TensorFlow低版本代码自动升级为1.0版本
Feb 20 Python
Python 语言实现六大查找算法
Jun 30 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 正则判断中文UTF-8或GBK的思路及具体实现
2013/11/26 PHP
浅析PHP微信支付通知的处理方式
2014/05/25 PHP
php中的ini配置原理详解
2014/10/14 PHP
PHP里8个鲜为人知的安全函数分析
2014/12/09 PHP
php创建多级目录的方法
2015/03/24 PHP
PHP中判断文件存在使用is_file还是file_exists?
2015/04/03 PHP
PHP实现批量重命名某个文件夹下所有文件的方法
2017/09/04 PHP
THINKPHP-Apache服务器中使用Alias虚拟目录URL重写 隐藏index.php
2021/03/09 PHP
javascript web页面刷新的方法收集
2009/07/02 Javascript
javascript中全局对象的parseInt()方法使用介绍
2013/12/19 Javascript
jQuery实现仿新浪微博浮动的消息提示框(可智能定位)
2015/10/10 Javascript
JavaScript中实现键值对应的字典与哈希表结构的示例
2016/06/12 Javascript
jQuery实例—选项卡的简单实现(js源码和jQuery)
2016/06/14 Javascript
JS获取字符串实际长度(包含汉字)的简单方法
2016/08/11 Javascript
超级简易的JS计算器实例讲解(实现加减乘除)
2017/08/08 Javascript
详解使用angular的HttpClient搭配rxjs
2017/09/01 Javascript
angularjs获取到My97DatePicker选中的值方法
2018/10/02 Javascript
原生js实现无缝轮播图效果
2021/01/28 Javascript
Python不规范的日期字符串处理类
2014/06/10 Python
python根据给定文件返回文件名和扩展名的方法
2015/03/27 Python
在Python的Flask框架中验证注册用户的Email的方法
2015/09/02 Python
Python的装饰器使用详解
2017/06/26 Python
windows下Python实现将pdf文件转化为png格式图片的方法
2017/07/21 Python
解决pyqt5异常退出无提示信息的问题
2020/04/08 Python
python使用布隆过滤器的实现示例
2020/08/20 Python
安装python依赖包psycopg2来调用postgresql的操作
2021/01/01 Python
师范生实习个人的自我评价
2013/09/28 职场文书
小小商店教学反思
2014/04/27 职场文书
求职简历自荐信
2014/06/18 职场文书
优秀班主任事迹材料
2014/12/16 职场文书
行政经理岗位职责
2015/04/15 职场文书
辩护意见书
2015/06/04 职场文书
爱国主义电影观后感
2015/06/18 职场文书
妇联2016年六一国际儿童节活动总结
2016/04/06 职场文书
修改MySQL的默认密码的四种小方法
2021/05/26 MySQL
HTML+CSS实现导航条下拉菜单的示例代码
2021/08/02 HTML / CSS