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安装使用命令行交互模块pexpect的基础教程
May 12 Python
python 迭代器和iter()函数详解及实例
Mar 21 Python
tensorflow获取变量维度信息
Mar 10 Python
win7+Python3.5下scrapy的安装方法
Jul 31 Python
Python实现二维曲线拟合的方法
Dec 29 Python
python绘制漏斗图步骤详解
Mar 04 Python
python实现向微信用户发送每日一句 python实现微信聊天机器人
Mar 27 Python
使用opencv将视频帧转成图片输出
Dec 10 Python
用Python在Excel里画出蒙娜丽莎的方法示例
Apr 28 Python
使用Keras实现简单线性回归模型操作
Jun 12 Python
Python利用myqr库创建自己的二维码
Nov 24 Python
Python中对象的比较操作==和is区别详析
Feb 12 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生成zip压缩文件的方法详解
2013/06/09 PHP
php删除数组元素示例分享
2014/02/17 PHP
编写PHP脚本来实现WordPress中评论分页的功能
2015/12/10 PHP
thinkPHP连接sqlite3数据库的实现方法(附Thinkphp代码生成器下载)
2016/05/27 PHP
PHP基于Redis消息队列实现发布微博的方法
2017/05/03 PHP
JavaScript快速检测浏览器对CSS3特性的支持情况
2012/09/26 Javascript
jquery阻止冒泡事件使用模拟事件
2013/09/06 Javascript
jquery滚动加载数据的方法
2015/03/09 Javascript
jQuery实现图片走马灯效果的原理分析
2016/01/16 Javascript
JavaScript原生数组Array常用方法
2017/04/06 Javascript
jQuery使用正则验证15/18身份证的方法示例
2017/04/27 jQuery
jQuery实现简单的滑动导航代码(移动端)
2017/05/22 jQuery
浅谈ECMAScript6新特性之let、const
2017/08/02 Javascript
vue中Axios的封装与API接口的管理详解
2018/08/09 Javascript
解决vue同一slot在组件中渲染多次的问题
2018/09/06 Javascript
VUE v-model表单数据双向绑定完整示例
2019/01/21 Javascript
react高阶组件添加和删除props
2019/04/26 Javascript
Vue分页效果与购物车功能
2019/12/13 Javascript
微信小程序利用云函数获取手机号码
2019/12/17 Javascript
Python用for循环实现九九乘法表
2018/05/31 Python
Python运维自动化之nginx配置文件对比操作示例
2018/08/29 Python
分享8个非常流行的 Python 可视化工具包
2019/06/05 Python
Python中拆分字符串的操作方法
2019/07/23 Python
python elasticsearch环境搭建详解
2019/09/02 Python
tensorflow2.0与tensorflow1.0的性能区别介绍
2020/02/07 Python
基于python模拟TCP3次握手连接及发送数据
2020/11/06 Python
使用html5制作loading图的示例
2014/04/14 HTML / CSS
汽车维修工岗位职责
2014/02/12 职场文书
终止合同协议书
2014/04/17 职场文书
应聘教师自荐书
2014/06/16 职场文书
机关干部三严三实心得体会
2014/10/13 职场文书
领导干部群众路线对照检查材料
2014/11/05 职场文书
辛亥革命观后感
2015/06/02 职场文书
唐山大地震的观后感
2015/06/05 职场文书
浅析Python中的随机采样和概率分布
2021/12/06 Python
关于Redis的主从复制及哨兵问题
2022/06/16 Redis