Django框架全面讲解 -- 认证系统(auth)
来源:互联网 发布:p5.js 类库 编辑:程序博客网 时间:2024/06/01 09:34
auth模块是Django提供的标准权限管理系统,可以提供用户身份认证, 用户组管理,并且可以和admin模块配合使用. 在INSTALLED_APPS中添加’django.contrib.auth’使用该APP, auth模块默认启用.
model
from django.contrib.auth.models import User# 数据库中该表名为auth_user.CREATE TABLE "auth_user" ( "id" integer NOT NULL PRIMARY KEY AUTOINCREMENT, "password" varchar(128) NOT NULL, "last_login" datetime NULL, "is_superuser" bool NOT NULL, "first_name" varchar(30) NOT NULL, "last_name" varchar(30) NOT NULL, "email" varchar(254) NOT NULL, "is_staff" bool NOT NULL, "is_active" bool NOT NULL, "date_joined" datetime NOT NULL, "username" varchar(30) NOT NULL UNIQUE)
新建用户
user = User.objects.create_user(username, email, password)user.save()# 不存储用户密码明文而是存储一个Hash值
认证用户
from django.contrib.auth import authenticateuser = authenticate(username=username, password=password)# 认证用户的密码是否有效, 若有效则返回代表该用户的user对象, 若无效则返回None.# 该方法不检查is_active标志位.
修改密码
user.set_password(new_password)# 以下实例为先认证通过后才可以修改密码user = auth.authenticate(username=username, password=old_password)if user is not None: user.set_password(new_password) user.save()
登录
from django.contrib.auth import login# login向session中添加SESSION_KEY, 便于对用户进行跟踪:'login(request, user)'# login不进行认证,也不检查is_active标志位# 实例user = authenticate(username=username, password=password)if user is not None: if user.is_active: login(request, user)
退出登录
# logout会移除request中的user信息, 并刷新sessionfrom django.contrib.auth import logoutdef logout_view(reque
只允许登录的用户访问
@login_required修饰器修饰的view函数会先通过session key检查是否登录, 已登录用户可以正常的执行操作, 未登录用户将被重定向到login_url指定的位置. 若未指定login_url参数, 则重定向到settings.LOGIN_URL
from django.contrib.auth.decorators import login_required@login_required(login_url='/accounts/login/')def userinfo(request): ...# settings 配置LOGIN_URL = '/index/'# views@login_requireddef userinfo(request): ...
阅读全文
0 0
- Django框架全面讲解 -- 认证系统(auth)
- Django框架全面讲解 -- Django 路由系统
- Django框架全面讲解 -- 中间件(MiddleWare)
- django.contirb.auth-认证
- django.contirb.auth-认证
- Django框架全面讲解 -- 模板
- Django框架全面讲解 -- Model
- Django框架全面讲解 -- Form
- Django框架全面讲解 -- 分页
- Django框架全面讲解 -- Cookie
- Django框架全面讲解 -- Session
- Django框架全面讲解 -- 缓存
- Django框架全面讲解 -- 信号
- Django框架全面讲解 -- admin
- Django框架全面讲解 -- Django Views(视图函数)
- Django框架全面讲解 -- Django流程介绍
- Django框架全面讲解 -- 跨站请求伪造(csrf)
- Django框架全面讲解 -- 序列化
- 记录一次更换JDK之后导致eclipse中web项目无法正常运行
- 基于 HTML5 Canvas 的 3D 压力器反序列化
- 微信分享(图片,链接,文字),向剪贴板粘贴内容,
- 大数据面试题
- LeetCode 104. Maximum Depth of Binary Tree
- Django框架全面讲解 -- 认证系统(auth)
- 设计E-R图和物理模型,并用powerdesigner逆向工程
- LinkedList方法总结 ListIterator和Iterator的区别
- java 多线程
- MariaDB高可用架构之MHA
- 手动部署和使用工具(Cloudera Manager、Ambari)部署Hadoop对比
- 你所不了解的React Native
- centos7安装mariadb
- SVG-Android(资源替代详解)源码详解