cookie,session,用户认证组件
一. 绘画跟踪技术
在客户端与服务端的一次会务中,多次的请求与相应,HTTP协议是无状态协议,也就是说每个请求都是独立的!无法记录前一次请求的状态。会话跟踪技术即能够实现多次回话间信息共享的作用,HTTP协议中可以使用Cookie来完成会话跟踪!在Web开发中,使用session来完成会话跟踪,session底层依赖Cookie技术。
二.cookie技术
Cookie是浏览器的技术,当浏览器第一次访问一个网站时,发送给服务端的是一个空的cookie,如果登录成功了,服务器可以向cookie的字典中插入值,以后在一定的时间内,浏览器访问此服务端,都会带着这个cookie字典.

Cookie语法:
1.设置cookie
Obj=Httpresponse(“ok”)
Obj.set_cookie(“is_login”,True)
Obj.set_cookie(“username”,”amy”) #不写时间默认是两周
Obj.set_cookie(“username”,”amy”,max_age=20) #让浏览器20秒后清除cookie获取cookie
2.获取cookie
Request.COOKIES
得到的是cookie字典{“is_login”:True,“username”:”amy”}
Request.COOKIES.get(“is_login”)
得到的是True
3.删除cookie
Response.delete_cookie("cookie_key",path="/",domain=name)
三.session技术
由于cookie的信息暴露在客户端,非常的不安全,而且数据量一但变大,会一定程度的影响速度,所以,出现了session,session是基于cookie的,session是服务端技术

1.设置session值
Request.session[“s_username”]=”amy”
这句话会做三件事:
生成一个随机字符串作为表中session-key字段的值
向表中django_session插入数据
Session-key session-data
随机字符串 加密后的{“s_username”:”amy”}
向客户端相应时,加上sessionid=刚刚生成的随机字符创

2.获取session值
S_username=request.session[“s_username”]
3.删除session值
Del request.session[“s_username”]
4.Request.session.flush()
(1) 找到钥匙
(2) 从Django session表中过滤出该记录,并删除
(3) 删除钥匙
四. 用户认证组件
视图函数中要使用用户认证组件需要引入auth模块
From Django.contribute import auth
前提:必须使用组Django提供auth_user表
插入命令:在manage.py中创建命令createsuperuser(python manage.py createsuperuser)即为向该表中插入记录,通过此方式插入的密码是加密的,直接在表中插入密码不是加密的
1.数据库中查询数据是否存在(从auth_user表中)
查询成功返回用户对象,查询失败返回none:
auth.authenticate(username=”amy”,password=123)
2.保存用户状态信息
auth.login(request,user_obj)
相当于:request.session["user_id"]=user.pk
保存后可以使用request.user,代指当前登录对象,没有auth.login时,默认是匿名对 象,requester.user是全局变量
3.删除数据库中的记录,删除钥匙
auth.logout(request)
4.向auth_user表中插入数据用create_user接口,要先引入user
from Django.contrib.auth.models import User
User.objects.create_user(username=user,password=pwd)
5.重置密码
user=User.objects.get(username=request.user.username)
user.set_password("666")
user.save()
cookie,session,用户认证组件的更多相关文章
- Django组件 - cookie、session、用户认证组件
一.cookie 1.会话跟踪技术 1)什么是会话跟踪技术 我们需要先了解一下什么是会话!可以把会话理解为客户端与服务器之间的一次会晤,在一次会晤中可能会包含多次请求和响应.例如你给10086打个电话 ...
- cookie、session与用户认证组件
1.cookie def login(request): if request.method == "GET": return render(request,"login ...
- python 全栈开发,Day79(Django的用户认证组件,分页器)
一.Django的用户认证组件 用户认证 auth模块 在进行用户登陆验证的时候,如果是自己写代码,就必须要先查询数据库,看用户输入的用户名是否存在于数据库中: 如果用户存在于数据库中,然后再验证用户 ...
- 061.Python前端Django组件用户认证组件
一 auth认证组件 在使用pymysql,数据库迁移的时候.,默认生成有十张表如下 查看author_user表结构 mysql> desc auth_user; +------------- ...
- web框架开发-Django用户认证组件
可以用认证组件做什么 针对session的缺陷, 跟新数据时,不跟新key键, 用户认证组件是删除后再重建 用户认证组件很多功能可以直接使用 利用用户认证表(auth_user,通过Django自己创 ...
- django - 总结 - 用户认证组件
用户认证组件 from django.contrib import auth 从auth_user表中获取对象,没有返回None,其中密码为密文,使用了加密算法 user = auth.authent ...
- 10.Django用户认证组件
用户认证组件: 功能:用session记录登录验证状态: 前提:用户表,django自带的auth_user 创建超级用户:python manage.py createsuperuser ...
- Django用户认证组件
用户认证 主要分两部分: 1.auth模块 from django.contrib import auth 2.User对象 from django.contrib.auth.models imp ...
- django的用户认证组件
DataSource:https://www.cnblogs.com/yuanchenqi/articles/9064397.html 代码总结: 用户认证组件: 功能:用session记录登录验证状 ...
随机推荐
- Eclipse使用技巧总结(五)
三十五.快速回退到上次编辑处 Ctrl + Q 三十六.查看调用层次 Ctrl + Alt + H 三十七.快速查看某个类 Ctrl + Shift + T 三十八.快速定位 Ctrl + K :首 ...
- mac在终端打开应用程序
今天研究了下mac终端的启动流程.以下以sublime为例,介绍怎么在mac的终端中加入app启动方法. 方法1 :使用"open -a /Applications/Sublime\ Tex ...
- Light libraries是一组通用的C基础库,目标是为减少重复造轮子而写(全部用POSIX C实现)
Light libraries是一组通用的C基础库,目标是为减少重复造轮子而写实现了日志.原子操作.哈希字典.红黑树.动态库加载.线程.锁操作.配置文件.os适配层.事件驱动.工作队列.RPC.IPC ...
- ie height
苦恼我许久了,为啥在IE中设置div的height属性无效呢... 在网上查了,常用解决是设置line-height或者设置overflow:hidden,不过我这个div用来定位的,一是里面没文字, ...
- Massive Collection Of Design Patterns, Frameworks, Components, And Language Features For Delphi
Developer beNative over on GitHub has a project called Concepts which is a massive collection of Del ...
- UVA - 10312 Expression Bracketing
Description Problem A Expression Bracketing Input: standard input Output: standard output Time Limit ...
- 微信4.5 for Android安卓内测版体验【实时对讲】杀手级应用下载
微信4.5 for Android 安卓 内测版 体验 程序启动画面,是一支在动的烛光 主要功能更新如下 支持语音提醒,到时间后自动弹出消息框 发起语音提醒请求 成功识别语音请求,并且保存在本地,应该 ...
- QT中窗口刷新事件的学习总结(viewport, paintEvent, repaint, update, erase, updatesEnabled)
一.主要理解一下几个方法和属性: 1.QWidget * QScrollView::viewport () const 2.void QWidget::paintEvent ( QPaintEvent ...
- 微信小程序之商品属性分类
所提及的购物数量的加减,现在说说商品属性值联动选择. 为了让同学们有个直观的了解,到电商网截了一个图片,就是红圈所示的部分 现在就为大家介绍这个小组件,在小程序中,该如何去写 下图为本项目的图: wx ...
- ArcGIS Engine 中的多线程使用[转载]
一直都想写写AE中多线程的使用,但一直苦于没有时间,终于在中秋假期闲了下来.呵呵,闲话不说了,进入正题! 大家都了解到ArcGIS中处理大数据量时速度是相当的慢,这时如果你的程序是单线 ...