zoukankan      html  css  js  c++  java
  • cookie和session

    cookie
    保存在客户端浏览器上的键值对


    session
    保存在服务端上的键值对
    服务端产生随机的串儿返回给客户端,服务端找一个地方将串儿与对应的信息存起来{'随机字符串':'敏感信息'}

    django
        return HttpResponse()
        return render()
        return redirect()
    
    
    obj = HttpResponse()
    return obj
    
        obj = render()
        return obj
        obj = redirect()
        return obj



    设置cookie

    obj.set_cookie() # 给浏览器设置cookie


    获取cookie

    request.COOKIE.get('name')
    request.COOKIE['name']
    def login(request):
    if request.method == 'POST':
    username = request.POST.get('username')
    password = request.POST.get('password')
    if username == 'jason' and password == '123':
    old_path = request.GET.get('next')
    if old_path:
    obj = redirect(old_path)
    else:
    obj = redirect('/home/')
    # 用户登录成功 朝浏览器设置一个cookie
    obj.set_cookie('name','jason',expires=7*24*3600)
    return obj
    return render(request,'login.html')
    
    from functools import wraps
    def login_auth(func):
    @wraps(func)才
    def inner(request,*args,**kwargs):
    # 校验cookie
    # print(request.get_full_path())
    old_path = request.get_full_path()
    if request.COOKIES.get('name'):
    return func(request,*args,**kwargs)
    return redirect('/login/?next=%s'%old_path)
    return inner
    
    
    def logout(request):
    rep = redirect("/login/")
    rep.delete_cookie("user") # 删除用户浏览器上之前设置的usercookie值
    return rep
    
    set_cookie()
    request.COOKIES
    delete_cookie

    session
    设置session

    request.session['name'] = 'jason'
        # 1.先生成一个随机的字符串
        # 2.在django session表中存储该随机字符串与数据的记录
        # 3.将随机的字符串发送给客户端浏览器


    获取session

    request.session.get('name')
        # 1.django自动获取浏览器随机字符串取django session表里面比对
        # 2.如果比对成功 会将当前随机字符串对应的数据赋值给request.session
        # 3.通过request.session操作该数据(数据不存在也不会影响我们的业务逻辑)



    浏览器会设置一个键为sessionid来存放session值


    # 删除当前会话的所有Session数据

    request.session.delete()

    # 删除当前的会话数据并删除会话的Cookie。

    request.session.flush() 

    这用于确保前面的会话数据不可以再次被用户的浏览器访问
    例如,django.contrib.auth.logout() 函数中就会调用它。

    # 设置会话Session和Cookie的超时时间

    request.session.set_expiry(value)
    * 如果value是个整数,session会在些秒数后失效。 * 如果value是个datatime或timedelta,session就会在这个时间后失效。 * 如果value是0,用户关闭浏览器session就会失效。 * 如果value是None,session会依赖全局session失效策略。




    django默认的session存活时间是两周(14天)








  • 相关阅读:
    查询安装webpack4.0是否成功时提示无法找到的解决方法
    clientHeight—scrollHeight—offsetHeight三者的区别
    onunload事件不触发的探索
    你知道刷社保卡看病买药也能扫二维码支付吗?(以成都市社保卡为例)
    成都市新社保卡线上申请方法(无需线下办理,手机直接搞定)
    jquery实现移动端页面加载后,向上滚动指定距离无效引起的探索
    社保官网查询密码重置及注册(以成都为例)
    社保对线上购买保险时2个你不知道的影响(最后一个真的太坑爹,中招的人肯定不在少数)
    坑爹的京东E卡
    Mongodb(一)
  • 原文地址:https://www.cnblogs.com/tuzaizi/p/13163031.html
Copyright © 2011-2022 走看看