Django学习笔记-cookies与session

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):
		# 接收cookies
		shu = request.COOKIES.get('shu', '0')
		
		# 声明一个响应对对象
		resp = HttpResponse()
		# 让服务器存储cookies
		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'
	]
	
	# 指定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'] = values
3、获取session的值
	request.session.get('key', '默认值')
4、删除session的值
	del request.session['key']
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值