cookie的添加和删除
为什么要使用cookie
因为http请求是无状态的,
他并不会记录你上次请求的情况 但是我们有时,
我又希望知道之前的状态 所以就用到了会话跟踪,会话控制
cookie 是在浏览器上进行数据保存,
并且在每次访问时,携带保存的数据去访问服务器 session是把数据存在服务器端的(内存,服务器,文件)中,并生成一个session,记录到cookie中
等cookie下次访问会请求session ,效验,并且核对sessionid,去拿相应的数据
如果删除了本地cookie在通过cookie请求的时候,服务器端的cookie会返回none
本地cookie使用的浏览器,与其他浏览器不共享
# 设置cookie
def cookie_set(request):
from datetime import datetime
# 1,先获取响应对象
res = HttpResponse('设置cookie')
# 2,使用响应对象设置cookie
# res.set_cookie('name','yichuan')
# res.set_cookie('name','yichuan',3600*24*365)
# res.set_cookie('aa','aabbcc',expires=datetime(2025, 4, 19, 12, 20), path='/')
# key,value ='',max_age = None,expires = None
# 3,返回响应对象
return res
# 获取cookie
def cookie_get(request):
# 在请求对象中获取cookie信息
data = request.COOKIES.get('name')
print(data)
return HttpResponse('获取cookie')
#修改cookie的过期时间
res.set_cookie('aa','aabbcc',expires=datetime(2025, 4, 19, 12, 20), path='/')
session的添加和删除
session
django中的session需要依赖数据库 django_session
字段session_data 存的数据,expire_date 存的获取时间 ,session_key存的sessionid
def session_set(request):
# 设置session
request.session['VipUser'] = {'name':'zhangsan','age':20,'id':101}
request.session['username'] = '张三'
request.session['age'] = 10
return HttpResponse('session_set:设置')
def session_get(request):
# 获取session
# data1 = request.session.get('VipUser')
# data2 = request.session.get('username')
# data3 = request.session.get('age')
# print(data1)
# print(data2)
# print(data3)
# 删除指定key,已经删除之后再次删除会报错
# del request.session['username']
# 清除会话的内容,但不会删除会话链接
# request.session.clear()
# 删除会话,把当前会话相关的数据全部删除
# request.session.flush()
return HttpResponse('session_get:获取')