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中使用smtplib和email模块发送邮件实例
Apr 22 Python
Python中使用ConfigParser解析ini配置文件实例
Aug 30 Python
python中sleep函数用法实例分析
Apr 29 Python
Python搭建APNS苹果推送通知推送服务的相关模块使用指南
Jun 02 Python
全面了解python中的类,对象,方法,属性
Sep 11 Python
Python构建XML树结构的方法示例
Jun 30 Python
Python3中条件控制、循环与函数的简易教程
Nov 21 Python
微信跳一跳python代码实现
Jan 05 Python
python用BeautifulSoup库简单爬虫实例分析
Jul 30 Python
Python 200行代码实现一个滑动验证码过程详解
Jul 11 Python
python剪切视频与合并视频的实现
Mar 03 Python
关于jupyter打开之后不能直接跳转到浏览器的解决方式
Apr 13 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
zend framework配置操作数据库实例分析
2012/12/06 PHP
php简单实现快速排序的方法
2015/04/04 PHP
php版微信自动获取收货地址api用法示例
2016/09/22 PHP
PHP使用strrev翻转中文乱码问题的解决方法
2017/01/13 PHP
PHP排序算法之直接插入排序(Straight Insertion Sort)实例分析
2018/04/20 PHP
浅谈PHP进程管理
2019/03/08 PHP
清华大学出版的事半功倍系列 javascript全部源代码
2007/05/04 Javascript
javascript HTMLEncode HTMLDecode的完整实例(兼容ie和火狐)
2009/06/02 Javascript
jQuery 使用手册(六)
2009/09/23 Javascript
IE8的JavaScript点击事件(onclick)不兼容的解决方法
2013/11/22 Javascript
jQuery插件EnPlaceholder实现输入框提示文字
2015/06/05 Javascript
JavaScript 中 apply 、call 的详解
2017/03/21 Javascript
angular ng-click防止重复提交实例
2017/06/16 Javascript
ECMAScript6变量的解构赋值实例详解
2017/09/19 Javascript
vue+node+webpack环境搭建教程
2017/11/05 Javascript
JavaScript实现京东购物放大镜和选项卡效果的方法分析
2018/07/05 Javascript
详解vue.js根据不同环境(正式、测试)打包到不同目录
2018/07/13 Javascript
jsonp跨域获取百度联想词的方法分析
2019/05/13 Javascript
vue+element搭建后台小总结 el-dropdown下拉功能
2020/04/10 Javascript
vue element upload组件 file-list的动态绑定实现
2019/10/11 Javascript
原生javascript运动函数的封装示例【匀速、抛物线、多属性的运动等】
2020/02/23 Javascript
echarts实现获取datazoom的起始值(包括x轴和y轴)
2020/07/20 Javascript
Vue Render函数原理及代码实例解析
2020/07/30 Javascript
使用go和python递归删除.ds store文件的方法
2014/01/22 Python
Python numpy 提取矩阵的某一行或某一列的实例
2018/04/03 Python
Python FTP两个文件夹间的同步实例代码
2018/05/25 Python
在Python中使用defaultdict初始化字典以及应用方法
2018/10/31 Python
Python设计模式之模板方法模式实例详解
2019/01/17 Python
python面向对象法实现图书管理系统
2019/04/19 Python
通过实例简单了解Python sys.argv[]使用方法
2020/08/04 Python
html5新增的定时器requestAnimationFrame实现进度条功能
2018/12/13 HTML / CSS
公益广告宣传方案
2014/02/28 职场文书
竞选生活委员演讲稿
2014/04/28 职场文书
廉洁自律演讲稿
2014/05/22 职场文书
拉歌口号大全
2014/06/13 职场文书
小升初自荐信怎么写
2015/03/26 职场文书