cookie和session使用

标题cookie参数介绍

1、key:cookie键
2、value:cookie值,目前不支持中文
3、max_age:cookie寿命,一个时长,单位秒 60*6
4、expires:过去时间,是一个时间点,和max_age冲突
5、path:cookie起作用的范围
6、domain:起作用的域名
7、secure:是否启用加密方式传输cookie
8、httponly:是否只使用http协议传输cookie
9、samesite:cookie针对是否是当前域名(二级)

设置cookie

1.普通

obj.set_cookie("tile","zhangsan",expires=value,path='/' )

2.加盐
普通cookie是明文传输的,可以直接在客户端直接打开,所以需要加盐,解盐之后才能查看

obj.set_signed_cookie('k','v',salt="zhangsan")

获取cookie

1、普通

request.COOKIES.get('k'

2、加盐

cookies=request.get_signed_cookie('k',salt='zhangsan')

最后给每个视图函数装饰cookie认证功能

def loginValid(fun):
    def inner(request,*args,**kwargs):
        cookie_email = request.COOKIES.get('email')
        cookie_id = request.COOKIES.get('id')
        session_email = request.session.get('email')
        if cookie_email and cookie_id and session_email and cookie_email==session_email:
            return fun(request,*args,**kwargs)
        else:
            return HttpResponseRedirect('/buyer/login/')
    return inner

session应用

1.cookie引入session

cookie看似解决了HTTP(短连接、无状态)的会话保持问题,但把全部用户数据保存在客户端,存在安全隐患,

于是cookie+session出现了!我们可以 把关于用户的数据保存在服务端,在客户端cookie里加一个sessionID(随机字符串),

基于以上原因:cook+session组合就此作古了单单使用cookie做会话保持的方式;

session设置

1.session是以键值对的形式存在的所以设置的时候和字典很像

设置session
request.session['name']= '张三'
获取session
v=request.session.get('name')
删除session
request.session.clear()
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值