状态的保持
#####对本单元的简单理解
长/短连接
短:就比如通话 只能说一次 需要在进行连接 才能继续通话
长:不会断开 可以长时间的连接
##Cookie
实现cookie设置
from django.shortcuts import render,HttpResponse
# 设置cookie
resp.set_cookie("name","hahahhah")
获取cookie
# 获取cookie,cookie是保存在客户端的,获取要是有request请求
print(request.COOKIES.get("name"))
删除cookie
# 删除cookie
resp.delete_cookie('name')
防止篡改cookie
避免不要在客户端进行修改
HttpResonse.set_signed_cookie(key, value, salt='', max_age=None,
expires=None, path='/', domain=None, secure=None, httponly=True)
# 为cookie值添加签名,其余参数与set_cookie相同
框架是如何管理Session
Session的使用必须在Settings配置下
INSTALLED_APPS = (
...
'django.contrib.sessions',
...
)
MIDDLEWARE_CLASSES = (
'django.contrib.sessions.middleware.SessionMiddleware',
...
)
获取Session
session_data = request.session.get(Key)
session_data = request.session[Key]
删除Session
del request.seesion[Key]
# 删除对应session,Key值不存在时,引发KeyError
设置有效期
request.session.set_expiry(value)
# 设置Session的有效时间
'''
value: 有效时间。
- 为整数时: 将在value为秒单位之后过期
- 为0时: 将在用户关闭浏览器之后过期。
- 为None时: 使用全局过期的设置,默认为两个星期,14天。
- 为datetime时: 在这个指定时间后过期
'''
request.session.get_expiry_age()
# 返回距离过期还剩下的秒数
request.session.clear_expired()
# 清除过期的Session会话
- session示例
class SessionOper(View):
def get(self,request):
# 设置session 使用request请求来设置session 会自动生成sessionid===
request.session["name"] = "hahaha"
# 获取session
print(request.session.get("name"))
# 删除session
request.session.clear()
# 获取session
print(request.session.get("name"))
return HttpResponse("OK")