系列文章目录
前言
基于http协议的请求与响应是无状态的,为了解决无状态问题(每次见面如初见),引入了cookie,在cookie的基础上引入了更安全私密的session
一、设置cookie
cookie数据保存在客户端
def set_cookie(res):
resp = HttpResponse('sz')
resp.set_cookie('username', 'cjh', max_age=600)
resp.set_cookie('username2', 'zfc', max_age=600)
return resp
二、设置session
session数据保存在服务器端,但是会在cookie保存一个sessionid用来与服务器端的session对象对应
def set_session(res):
res.session['username'] = 'cjh'
res.session['username2'] = 'zfc'
return HttpResponse('sz')
三.获取cookie与session
1.获取cookie
def get_cookie(res):
n1 = res.COOKIES['username']
n2 = res.COOKIES['username2']
return HttpResponse(n1 + ' ' + n2)
2.获取session
def get_session(res):
n1 = res.session['username']
n2 = res.session['username2']
return HttpResponse(n1 + ' ' + n2)
3.效果
三.session管理工具
注意:在使用session前需要先读取配置一下django自带的数据库,在每次启动django的时候django都会提示你去配置,去复制一下粘贴到控制台运行一下就好了
在数据库中保存着的有session的对象表,我们可以通过sessionid去获取
sessionid去哪里找呢,我们直接在cookie中就可以看到了
# 获取session对象
session = Session.objects.get(pk='897dla12kppc7e9sgq1y9d1cyiotzcuh')
# 会打印sessionid
print(session)
# 会打印session表中的数据,数据是经过加密的
print(session.session_data)
# 会打印session中解密过后的数据
print(session.get_decoded())
也可以对session对象使用clear方法清空你自己添加一些键与值
也可以使用flush方法直接删除整个session对象(不推荐)