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中操作列表之list.extend()方法的使用
May 20 Python
简单介绍Python的Django框架的dj-scaffold项目
May 30 Python
Python实现约瑟夫环问题的方法
May 03 Python
在Python web中实现验证码图片代码分享
Nov 09 Python
如何用python整理附件
May 13 Python
Django框架会话技术实例分析【Cookie与Session】
May 24 Python
使用Python-OpenCV向图片添加噪声的实现(高斯噪声、椒盐噪声)
May 28 Python
用Python实现二叉树、二叉树非递归遍历及绘制的例子
Aug 09 Python
Python中的 sort 和 sorted的用法与区别
Aug 10 Python
Python定时任务APScheduler安装及使用解析
Aug 07 Python
详解Go语言运用广度优先搜索走迷宫
Jun 23 Python
python如何利用cv2.rectangle()绘制矩形框
Dec 24 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 文件上传系统手记
2009/10/26 PHP
apache和php之间协同工作的配置经验分享
2013/04/08 PHP
PHP获取文件扩展名的4种方法
2015/11/24 PHP
PHP结合Vue实现滚动底部加载效果
2017/12/17 PHP
关于laravel5.5的定时任务详解(demo)
2019/10/23 PHP
5款Javascript颜色选择器
2009/10/25 Javascript
JS格式化数字保留两位小数点示例代码
2013/10/15 Javascript
js动态修改表格行colspan列跨度的方法
2015/03/30 Javascript
php+ajax+jquery实现点击加载更多内容
2015/05/03 Javascript
jquery实现动画菜单的左右滚动、渐变及图形背景滚动等效果
2015/08/25 Javascript
Jquery中巧用Ajax的beforeSend方法
2016/01/20 Javascript
详解Vue CLI3 多页应用实践和源码设计
2018/08/30 Javascript
vue form check 表单验证的实现代码
2018/12/09 Javascript
jQuery实现王者荣耀手风琴效果
2020/01/17 jQuery
JS实现点星星消除小游戏
2020/03/24 Javascript
[05:08]第一届“网鱼杯”DOTA2比赛精彩集锦
2014/09/05 DOTA
[39:07]LGD vs VP 2018国际邀请赛淘汰赛BO3 第二场 8.21
2018/08/22 DOTA
Python实现批量下载图片的方法
2015/07/08 Python
在Mac OS系统上安装Python的Pillow库的教程
2015/11/20 Python
python基于隐马尔可夫模型实现中文拼音输入
2016/04/01 Python
Python实现的在特定目录下导入模块功能分析
2019/02/11 Python
Python3.5常见内置方法参数用法实例详解
2019/04/29 Python
int在python中的含义以及用法
2019/06/27 Python
django创建超级用户过程解析
2019/09/18 Python
Python中断多重循环的几种方式详解
2020/02/10 Python
Python中的全局变量如何理解
2020/06/04 Python
python定时截屏实现
2020/11/02 Python
欧洲最大的笔和书写专家:The Pen Shop
2017/03/19 全球购物
KIKO MILANO荷兰网上商店:意大利专业化妆品品牌
2017/05/12 全球购物
2013的个人自我评价
2013/12/26 职场文书
综合实践活动方案
2014/02/14 职场文书
学生乘坐校车安全责任书
2015/05/11 职场文书
惊天动地观后感
2015/06/10 职场文书
大学入学感言
2015/08/01 职场文书
一波干货,会议主持词开场白范文
2019/05/06 职场文书
Python实现聚类K-means算法详解
2022/07/15 Python