标签:无法 lazy style 函数 error data exp mamicode 协议
HTTP协议四大特性 1.基于请求响应 2.基于TCP、IP作用于应用层之上 3.无连接 4.无状态 基于HTTP协议的通信无法记录客户端状态 但是现在很多软件都需要记录用户的状态 为了解决这个问题 发明了cookie session等一系列的技术 ? cookie 保存在客户端浏览器上面的键值对数据 """ eg:当用户登录成功之后 浏览器保存用户的关键信息 以后访问的时候浏览器自动发送关键信息从而实现身份识别 关键型数据直接保存在浏览器上不安全 """ session 保存在服务器上面的键值对数据(数据类型不固定) """ eg:当用户登录成功之后 服务端返回给浏览器一个随机字符串 之后访问都将随机字符串发送给服务端 服务端内部做比对 """ # session需要依赖于cookie才可以工作 客户端浏览器可以保存服务端发送过来的cookie数据也可以选择拒绝
视图函数返回的HttpResponse对象 return HttpResponse() return render() return redirect() ... ? ? obj = HttpResponse() return obj obj = render() return obj obj = redirect() return obj ? # 用户登录 设置cookie obj = HttpResponse("登录成功") obj.set_cookie(‘name‘,‘jason‘) 获取cookie request.COOKIES.get(‘name‘) 删除cookie obj.delete_cookie("name")
session设置 request.session[‘name‘] = ‘jason‘ """ 1.自动产生一个随机字符串 2.将随机字符串和数据存入django_session表中 3.将随机字符串返回给客户端浏览器保存 """ ? session读取 request.session.get(‘name‘) """ 1.客户端请求中获取随机字符串 2.拿着随机字符串去django_session表中比对 3.如果比对成功获取对应的数据并且解析放到request.session中 """ # django session默认的过期时间14d 可以人为修改 ? ? # 删除当前会话的所有Session数据 request.session.delete() # 只删客户端浏览器 # 删除当前的会话数据并删除会话的Cookie。 request.session.flush() # 客户端浏览器和服务端都删 ? # 设置会话Session和Cookie的超时时间 request.session.set_expiry(value) * 如果value是个整数,session会在些秒数后失效。 * 如果value是个datatime或timedelta,session就会在这个时间后失效 * 如果value是0,用户关闭浏览器session就会失效。 * 如果value是None,session会依赖全局session失效策略。
?
标签:无法 lazy style 函数 error data exp mamicode 协议
原文地址:https://www.cnblogs.com/chijintao/p/14854891.html