Django 【认证系统】auth
本篇内容
介绍Django框架提供的auth 认证系统
方法:
方法名 |
备注 |
create_user |
创建用户 |
authenticate |
登录验证 |
login |
记录登录状态 |
logout |
退出用户登录 |
is_authenticated |
判断用户是否登录 |
login_required装饰器 |
进行登录判断 |
引入模块
- from django.contrib import auth
登录认证
- user = auth.authenticate(username=username, password=pwd)
- if user is not None:
- # 将登录的用户封装到request.user
- # 在中间件中 process_request 中每次都这样子处理
- # id = request.session.get("user_id") 得到id
- # user = auth.User.objects.get(id=id)
- # request.user = user
- auth.login(request, user=user)
- return redirect("/index/")
验证通过则返回user,没有则返回None,在 login 函数中将认证通过的用户赋值给 request.user 属性,以及内部的 session 操作。 封装request.user = user
认证装饰器 login_required
- from django.contrib.auth.decorators import login_required
- @login_required
- def index(request):
- print(request.user.username)
- return render(request, "index.html")
需要配置登录视图的url,所以需要在 settings 文件中配置如下:
- # 如果没有登录 默认跳转的url
- LOGIN_URL = "/login/"
创建用户
1.普通用户
- from django.contrib.auth.models import User
- # 加密的
- user = User.objects.create_user(username="tanglaoer2", password="tanglaoer")
- user.set_password("tang")
- user.save()
2.超级用户
- user = User.objects.create_superuser(username="tanglaoer2", password="tanglaoer")
- user.set_password("tang")
- user.save()
注销
- auth.logout(request)
内部相当于 request.session.flush()
扩展自带的auth_user表
1.新建一个表, 一对一关联上面的auth_user表
或者新建一个表,继承的方式
- from django.contrib.auth.models import AbstractUser
- class UserInfo(AbstractUser):
- phone = models.CharField(max_length=11)
- addr = models.CharField(max_length=128)
相当于对默认的 auth_user 表做了扩展, 并且代替 auth_user ,还需要在配置文件 settings 中进行如下配置:
- # 如果使用继承的方式 继承auth的models,要在settings.py里面配置 默认用户认证时使用的哪张表
- AUTH_USER_MODEL = "app.UserInfo"
auth认证还是使用 auth 只是创建用户的时候改为 用 UserInfo
Django 【认证系统】auth的更多相关文章
- Django认证系统auth认证
使用Django认证系统auth认证 auth认证系统可以处理范围非常广泛的任务,且具有一套细致的密码和权限实现.对于需要与默认配置不同需求的项目,Django支持扩展和自定义认证;会将用户信息写入到 ...
- django 认证模块auth,表单组件form
django认证系统(auth): 1.首先我们在新窗口中打开一个django项目,之后点击,
- Django之自带的认证系统 auth模块
01-Django自带的用户认证 我们在开发一个网站的时候,无可避免的需要设计实现网站的用户系统.此时我们需要实现包括用户注册.用户登录.用户认证.注销.修改密码等功能,这还真是个麻烦的事情呢. Dj ...
- Django的认证系统—auth模块
Django的认证系统 auth模块的知识点总结: 1. 创建超级用户 python manage.py createsuperuser from django.contrib import auth ...
- Django的认证系统 auth模块
Django自带的用户认证 我们在开发一个网站的时候,无可避免的需要设计实现网站的用户系统.此时我们需要实现包括用户注册.用户登录.用户认证.注销.修改密码等功能,这还真是个麻烦的事情呢. Djang ...
- 『Django』第N+1节: Django自带的认证系统 - auth
个人网站: lipeiguan.top 以后会慢慢转移到个人网站, 欢迎大家收藏^ . ^ 写在前面 我们在开发一个网站的时候, 经常需要实现网站的用户系统. 这个时候我们需要实现用户注册.用户登录. ...
- django认证系统 Authentication
Django自带一个用户认证系统,用于处理用户账户.群组.许可和基于cookie的用户会话. Django的认证系统包含了身份验证和权限管理两部分.简单地说,身份验证用于核实某个用户是否合法,权限管理 ...
- django 认证系统--3
WEB request中的认证 django使用sessions和middleware和reqeust对象联系在一起 它们通过给每一个reqeust请求添加一个request.user属性来代表当前用 ...
- Django认证系统并不鸡肋反而很重要
在使用django-admin startproject创建项目后,Django就默认安装了一个采用session实现的认证系统.这是Django相比于其他框架的一大特点:自带认证系统,开箱即用.有人 ...
- 自定义Django认证系统的技术方案
Django已经提供了开箱即用的认证系统,但是可能并不满足我们的个性化需求.自定义认证系统需要知道哪些地方可以扩展,哪些地方可以替换.本文就来介绍自定义Django认证系统的相关技术细节. 自定义认证 ...
随机推荐
- 说一说MVC的控制器(二)
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.We ...
- 2016年,总结篇 续 如何从 JQ 转到 VueJS 开发(一)
接着 2016 年的总结,我们来看看 2016年 国内最火且没有之一的前端MVVM 框架 VueJs 虽然 到写文章的这个时间点,VueJs已经发布了 2.1.x 了, 但是对于很多 Vuejs 的初 ...
- 【c#】RabbitMQ学习文档(七)C# API
今天这篇博文是我翻译的RabbitMQ的最后一篇文章了,介绍一下RabbitMQ的C#开发的接口.好了,言归正传吧. Net/C# 客户端 API简介 主要的命名空间,接口和类 定义核心的API的接口 ...
- VS2015安装水晶报表
最近在做一个打印功能,本来是不想用水晶报表的.想直接用微软原生的报表rdlc完成,但是整了一个上午老是打印乱码,且网上找资料找也找不出. 无奈放弃,然后就想到用水晶报表了,以前用过水晶报表,不过一直都 ...
- eclipse导入别人工程项目后,出现红叉的各种情况
原文:http://www.cnblogs.com/mmzs/p/7662863.html 1.多半是因为jdk版本的原因,调整一下即可: 解决方法:Build Path ==> Configu ...
- Smobiler 4.0 正式发布
l Smobiler4.0提供了三大技术亮点:第三方插件.JS.自定义控件等: 强大的插件移动应用引擎 Smobiler支持分插件打包功能和插件扩展机制,让应用开发更加灵活. 分插件打包是指Smo ...
- .Net语言 APP开发平台——Smobiler学习日志:如何设置页面的title
1.修改Mobile Form的TitleText的属性 输入需要显示标题,如图1: 2.修改Mobile Form的TitleStyle属性 其中包括Image属性(窗体图标).BackColor属 ...
- [PHP] 频率限制类
比如要实现 单个ip限制60秒1次单个关键字,比如手机号,限制60秒1次,3600秒10次 <?php class Sina_Mail_WebAntispam { const PREFIX_WH ...
- 对HTML5的初步认识(一)
一.概述 1.HTML5是什么? HTML5是最新一代的HTML标准,它不仅拥有HTML中所有的特性,而且增加了许多实用的特性,如视频.音频.画布(canvas)等. 2012年12月17日,万维网联 ...
- MySQL5.7开多实例指导
一.mysql多实例原理 在一台服务器上,mysql服务开启多个不同的端口,运行多个服务进程.他们通过不同的 socket来监听不同的端口互不干扰地运行. 二.开发环境 ubuntu16.04.5LT ...