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实现的防DDoS脚本
Feb 08 Python
python中实现定制类的特殊方法总结
Sep 28 Python
Ruby元编程基础学习笔记整理
Jul 02 Python
Python输出带颜色的字符串实例
Oct 10 Python
python安装教程
Feb 28 Python
使用python 打开文件并做匹配处理的实例
Jan 02 Python
python3+selenium自动化测试框架详解
Mar 17 Python
Django数据库类库MySQLdb使用详解
Apr 28 Python
python内存动态分配过程详解
Jul 15 Python
python使用pandas处理excel文件转为csv文件的方法示例
Jul 18 Python
python创建n行m列数组示例
Dec 02 Python
pytest fixtures装饰器的使用和如何控制用例的执行顺序
Jan 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
第七节--类的静态成员
2006/11/16 PHP
php中过滤非法字符的具体实现
2013/10/29 PHP
Laravel 5.2 文档 数据库 ―― 起步介绍
2019/10/21 PHP
php中加密解密DES类的简单使用方法示例
2020/03/26 PHP
PHP哈希表实现算法原理解析
2020/12/11 PHP
Jquery实现无刷新DropDownList联动实现代码
2010/03/08 Javascript
理解Javascript_07_理解instanceof实现原理
2010/10/15 Javascript
js实现网页自动刷新可制作节日倒计时效果
2014/05/27 Javascript
jQuery验证元素是否为空的两种常用方法
2015/03/17 Javascript
EasyUI闪屏EasyUI页面加载提示(原理+代码+效果图)
2016/02/21 Javascript
Jquery针对tr td的一些实用操作方法(必看篇)
2016/10/05 Javascript
详解js中call与apply关键字的作用
2016/11/21 Javascript
js中常用的Math方法总结
2017/01/12 Javascript
基于vue2实现左滑删除功能
2017/11/28 Javascript
详解操作虚拟dom模拟react视图渲染
2018/07/25 Javascript
2种在vue项目中使用百度地图的简单方法
2018/09/28 Javascript
利用d3.js实现蜂巢图表带动画效果
2019/09/03 Javascript
nodejs一个简单的文件服务器的创建方法
2019/09/13 NodeJs
SSM+layUI 根据登录信息显示不同的页面方法
2019/09/20 Javascript
Python matplotlib 画图窗口显示到gui或者控制台的实例
2018/05/24 Python
pyinstaller打包opencv和numpy程序运行错误解决
2019/08/16 Python
python 怎样进行内存管理
2020/11/10 Python
python-图片流传输的思路及示例(url转换二维码)
2020/12/21 Python
法国足球商店:Footcenter
2019/07/06 全球购物
意大利买卖二手奢侈品网站:LAMPOO
2020/06/03 全球购物
什么是java序列化,如何实现java序列化
2012/11/14 面试题
学院书画协会部门职责
2013/11/28 职场文书
党章学习思想汇报
2014/01/14 职场文书
毕业生自我鉴定实例
2014/01/21 职场文书
校园十佳歌手策划书
2014/01/22 职场文书
小学生中国梦演讲稿
2014/04/23 职场文书
教师群众路线剖析材料
2014/09/29 职场文书
学习走群众路线心得体会
2014/11/05 职场文书
三年级作文之小小梦想
2019/12/06 职场文书
vue点击弹窗自动触发点击事件的解决办法(模拟场景)
2021/05/25 Vue.js
Django分页器的用法你都了解吗
2021/05/26 Python