美文网首页
Django中cookie,session,token三者的比较

Django中cookie,session,token三者的比较

作者: Challis | 来源:发表于2018-09-18 19:20 被阅读0次

    1.cookie

    # 设置cookie,从服务器返回的response中设置
    response  = redirect(path)   # 重定向到某个指定的路径下
    response.set_cookie(key,value,max_age=0)    # 直接设置cookie的值和value,max_age是过期时间,0是默认,None是永久,接上数字是具体时间,用s做单位。
    如:response.set_cookie('name',person.name,max_age=3600)
    
    # 获取cookie,从客户端请求中获得
    name = request.COOKIE.get('name')
    response = render(request,'home.index',contex=({'name':name})  
    return response
    
    # 清除cookie,从response清除
    response = redirect('namespace:name')
    response.delete_cookie('name')
    
    
    

    2.session

    # 设置session,一开始需要在project中setting里的middleware中添加上'django.contrib.sessions.middleware.SessionMiddleware',
    #默认是加上的,在request中设置session
    request.session['name'] = person.name
    request.session.set_expiry(60)   # 设置过期时间,单位是s
    
    
    # 获取session,也是从request中获取
    name = request.session.get('name')
    
    
    # 删除session,在response中删除
    response.delete_cookie('sessionid')  # 在客户端删除session
    del request.session['name']       #  在服务器端删除session
    request.session.flush()             # 直接清除两端的session
    
    
    

    3.token

    # 设置token,首先需要建立有关token字段的表格,在response中设置
    person.token = create_token()    # create_token 是创造token的函数
    response.set_cookie('token',person.token)
    
    
    # 获取token,在request中获取token
    person.token = request.COOKIE.get('token')
    
    # 清除token,在response中清除
    response.delete_cookie('token')
    
    

    4.进行md5加密

    import hashlib
    def create_hash(password)
      md5 = hashlib.md5()
      md5.update(password.encode('utf-8'))
      return md5.hexdigest()
    
    

    5.uuid创建token

    import uuid
    token = str(uuid.uuid5(uuid.uuid4() ,'token'))
    

    相关文章

      网友评论

          本文标题:Django中cookie,session,token三者的比较

          本文链接:https://www.haomeiwen.com/subject/ewjmnftx.html