django 自带的验证功能
django.contrib.auth提供了很多验证方法
authenticate():
提供了用户认证,在自带的数据库表中验证用户名和密码,需要username和password两个关键字参数
如果认证成功后,会返回一个User对象。authenticate()会在User 对象上设置一个属性来标识后端已经认证了该用户,且该信息在后续的登录过程中是需要的。
当我们试图登陆一个从数据库中直接取出来不经过authenticate()的User对象时会报错!!!
也就是数据库表中有一个属性代表登录验证过了
登录验证
auth.login(HttpRequest,user)
该函数接受一个Httprequest对象,以及一个认证了的User对象,
这个函数使用django的session框架给某个已认证的用户附加上sessionid等信息
注销用户
logout(request)
登录验证装饰器:
@login_required
from django.contrib.auth.decorators import login_required
如果用户没有登录,会跳转到django默认的登陆路径:/accounts/login/
所以我们要在settings里面修改配置项,把默认值换到我们的登陆
# 设置 我这个网站 默认的登录页面是什么
LOGIN_URL = "/login/"
User对象:
User 对象属性:username, password(必填项)password用哈希算法保存到数据库
is_staff : 用户是否拥有网站的管理权限.
is_active : 是否允许用户登录, 设置为``False``,可以不用删除用户来禁止 用户登录
is_authenticated():
如果是真正的 User 对象,返回值恒为 True 。 用于检查用户是否已经通过了认证。
通过认证并不意味着用户拥有任何权限,这个方法甚至也不检查该用户是否处于激活状态,只是表明用户成功的通过了认证。
这个方法很重要, 在后台用request.user.is_authenticated()判断用户是否已经登录,如果true则可以向前台展示request.user.name
创建普通用户:
from django.contrib.auth.models import User
user=User.objects.create_user(username='',,password='')
检查密码,如果密码正确,返回True:
check_password(password)
用户需要修改密码的时候,首先要让其输入原来的密码 ,如果给定的值通过了密码检查,返回 True
重置密码:
set_password()
user=User.objects.get(username='')
user.set_password('password')
user.save()
进阶:
如果想给用户添加新的字段,比如手机号,django肯定也考虑到了
我们可以通过继承内置的auth_user表的对应的类,来自己定义一个自己的ORM类。
导入定义的父类:
from django.contrib.auth.models improt AbstractUser
class UserInfo(AbstractUser):
phone=models.CharField(max_lebgth=11)
def __str__(self.username)
return self.username
这样就可以把手机号添加到user的类里面了,但要注意的是要设置
Settings里面告诉django,我要用新定义的Userinfo表来做用户验证:
AUTH_USER_MODEL="app名.UserInfo"
django 自带的验证功能的更多相关文章
- Django 自带登录验证:authenticate和login,login_require,logout模块
验证之前需要在settings 中指定验证数据models AUTH_USER_MODEL = 'crm.UserProfile'#app名字.表名字 1.authenticate是一个方法,验证账号 ...
- Python之django自带的分页功能
前端页面: <div class="col-sm-6"> <div class="dataTables_paginate paging_simple_n ...
- Django自带的登录功能
https://www.cnblogs.com/wspblog/p/6634262.html
- django自带的登录验证功能
django自带的验证机制 from django.shortcuts import render, redirect from django.contrib.auth import authenti ...
- Django自带表User认证详解
认证登陆(附方法实现代码,百度网盘拉取即可下载,激活码:gqt1) 在进行用户登陆验证的时候,如果是自己写代码,就必须要先查询数据库,看用户输入的用户名是否存在于数据库中: 如果用户存在于数据库中,然 ...
- django自带的用户认证和form表单功能
一.用户认证 1.用户认证方法 1.ajango自带用户认证功能,只需要引入相应的模块就可以使用,但是前提是必须使用ajango自带的auth_user表,并且需要把用户相关信息存放在该表中. 2.引 ...
- (译) 在AngularJS中使用的表单验证功能【转】
验证功能是AngularJS里面最酷炫的功能之一,它可以让你写出一个具有良好用户体验的Web应用. 在AngularJS中,有许多用于验证的指令.我们将先学习几个最流行的内置指令,然后再创建一个自定义 ...
- (译) 在AngularJS中使用的表单验证功能
验证功能是AngularJS里面最酷炫的功能之一,它可以让你写出一个具有良好用户体验的Web应用. 在AngularJS中,有许多用于验证的指令.我们将先学习几个最流行的内置指令,然后再创建一个自定义 ...
- django自带的django.core.mail模块实现发邮件的功能
django自带了一个模块,可以实现发邮件的功能.如果项目开发遇到需要发邮件进行验证的时候可以用到. 1.先要准备发件人 发邮件需要使用SMTP.SMTP是什么呢? 简单邮件传输协议(Simple M ...
随机推荐
- Vue02 样式的动态绑定
daigengxin......2018-3-8 21:09:18 跟angular2类似,分为CSS类绑定和Style样式绑定两种方式,详情参见
- winform 对话框控件
ColorDialog 可以调节颜色的控件,如果给一个按钮点击事件 ColorDialog.showdialog();就会弹出这个 返回值是个枚举类 然后定义一个这个类的变量 接收一下它的返回值 Di ...
- 算法Sedgewick第四版-第1章基础-022一QueueWithTwoStacks
/****************************************************************************** * Compilation: javac ...
- linux安装thrift
安装配置Thrift Thrift的编译器使用C++编写的,在安装编译器之前,首先应该保证操作系统基本环境支持C++的编译,安装相关依赖的软件包,如下所示 sudo yum install autom ...
- poj2287 Tian Ji -- The Horse Racing
传送门 分析 这个题和传统的田忌赛马不一样的地方就是多了平局情况,所有我们不难想到要用dp.我们先将两人的马均降序排列,用dpij表示考虑前i匹马,田忌有几匹马是按从大到小的顺序从头取的(剩下的是从尾 ...
- then方法
sendSMS(phoneNo).then(function(data) { var msg = (data && data['msg']) ? data['msg'] : '验证码已 ...
- Java并发之FutureTask
FutureTask实现了Runnable和Future接口,是一个可取消的异步任务.利用开始和取消计算的方法.查询计算是否完成的方法和获取计算结果的方法,此类提供了对 Future 的基本实现.仅在 ...
- Bootstrap 的 Modal
一.简介 Modal 就是弹出框,这里 有一个例子. Modal 的完整代码如下: <div class="modal fade" tabindex="-1&quo ...
- 在robotframework里面,怎么在已有的字典中加一个键值对呢
- Struts2 引入
引入: 说:如果一个路径想访问一个类,需求怎么做? 第一种方法,用servlet 第二种方法,用过滤器 第三种方法如下图:把路径和方法都存到map里面,用反射可以执行类下的方法 第三中方法 ...