cookies与session
- 1、相关知识
- 2、cookies
- django中获取提交的cookies
- 对cookies进行操作
- render()对cookies进行操作
- 示例:
- django settings.py 中的配置
- 基本操作:
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、修改和添加cookiesHttpResponse.set_cookie(key, values=\'\', max_age=None, expires=None)key: cookie的名字values: cookies的值max_age: cookies存活时间, 秒为单位expires: 具体过期时间当不指定max_age和expires,浏览器关闭此数据失效2、删除cookiesHttpResponse.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):# 接收cookiesshu = request.COOKIES.get(\'shu\', \'0\')# 声明一个响应对对象resp = HttpResponse()# 让服务器存储cookiesresp.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\']# 指定sessionid在cookies中保存的时长(默认为两周)SESSION_COOKIES_AGE = 60*60*24*14# 是否将session设置为会话级的 (默认为False)SESSION_EXPIRE_AT_BROWSER_CLOSE = False
基本操作:
1、session对象类似于字典对象, 字典怎么用session就怎么用2、保存session的值在服务器request.session[\'key\'] = values3、获取session的值request.session.get(\'key\', \'默认值\')4、删除session的值del request.session[\'key\']