第六章:django中的cookie与session

 系列文章目录

第一章 :Django安装与配置虚拟环境

第二章:django各模块的作用以及参数说明

第三章:  Django的路由与视图

第四章:django请求

第五章:django会话



前言

基于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

max_age:有效时间

二、设置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对象(不推荐)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

豪豪喜欢吃猪肉

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值