django的cookie和session的使用

27 篇文章 0 订阅
27 篇文章 0 订阅

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:获取')


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值