1、相关知识
session单独出现指的是会话
当session和cookies同时出现, session就变成了一种存储技术
会话:
当你打开浏览器, 直到关闭浏览器,就是一次会话
(一次的连接到连接的结束,称为会话)
当cookies和session同时出现时,session就成为一种存储技术
cookies是存储在浏览器上, sessio是存储在服务器上
这两种技术的出现是为了解决HTTP无状态的问题
2、cookies
一种存储技术, 将信息存储在浏览器上
目的:
保持会话状态
cookies是保存在客户端浏览器上的存储空间, 通常用来记录浏览器端自己的信息和当前连接的
确认信息
存储方式:
以键-值对的方式存储, 以ASCII字符串的形式存储(不能存储中文)
它是按域进行存储的
存储形式:
{
域名: {
'键': '值'
}
域名: {
'键': '值'
}
}
cookies是有过期时间的,这个时间需要工程师自己进行设置
自动提交:
每次访问浏览器会将该域下的cookies自动提交给服务器
django中获取提交的cookies
def get_cookies(request):
cookies_values = request.COOKIES.get('cookies名')
对cookies进行操作
1、修改和添加cookies
HttpResponse.set_cookie(key, values='', max_age=None, expires=None)
key: cookie的名字
values: cookies的值
max_age: cookies存活时间, 秒为单位
expires: 具体过期时间
当不指定max_age和expires,浏览器关闭此数据失效
2、删除cookies
HttpResponse.delete_cookie(key)
删除指定的key的cookies, 如果key不存在则什么也不发生
render()对cookies进行操作
resp = renser(request, 'xx.html', dic)
resp.set_cookie(key, values, max_age, expires)
resp.delete_cookie(key)
示例:
def cooki(request):
shu = request.COOKIES.get('shu', '0')
resp = HttpResponse()
resp.set_cookie('username', 'wang', 60)
3、session
简介:
单独出现指的是一次会话
当与cookies一起出现时是一种存储技术
session会将客户端的状态存储在服务器中, 他需要配合cookies一起使用
在django中session的使用:
每个客户端过来都会为其开一个session,并将其状态存储在服务器数据库中,
将sessionid存储进cookies中, 下次请求时,检查cookies的sessionid, 并
会恢复其状态
作用是:
在服务器中保存用户的会话状态
当存储了session之后
django自动的将sessionid存储进cookies中
django settings.py 中的配置
INSTALLED_APPS = [
'django.contrid.session'
]
MIDDLEWARE = [
'django.contrid.session.middleware.SessionMiddleware'
]
SESSION_COOKIES_AGE = 60*60*24*14
SESSION_EXPIRE_AT_BROWSER_CLOSE = False
基本操作:
1、session对象类似于字典对象, 字典怎么用session就怎么用
2、保存session的值在服务器
request.session['key'] = values
3、获取session的值
request.session.get('key', '默认值')
4、删除session的值
del request.session['key']