• django cookie、session


    1.cookie

    (1)什么是cookie?

      服务器让浏览器保存在浏览器本地的键值对

    (2) 为什么要有cookie?

      因为http协议无状态,每一次访问请求没有任何关系,无法保存状态

    (3)cookie的特点?

      cookie是由服务器给浏览器设置的

      在同一个浏览器中访问页面时,携带者cookie

    (4)设置cookie

      例如:

      response1 = redirect(‘/login/’)

      response1.set_cookie(key, value)  或者  response1.set_cookie(key, value,max_age)   其中max_age是创建的这个cookie在浏览器中保存多长时间,单位秒

      response1.set_cookie(key, value,salt='')  加盐加密

    (5)获取cookie 

      request.COOKIES['key']  或者

      request.COOKIES.get(key)    推荐取法

    (6) 删除cookie

      res.delete_cookie(key)

    2.session

    (1)什么是session

      session是保存在服务器上的键值对,每一个session对应一个cookie,其依赖于cookie

    (2)为什么用session 

      1.cookie在浏览器端,不太安全

      2.cookie保存的长度受限

    (3)设置session

      request.session[key] = value  或者

      request.session.setdefault(key,value)  当存在时不设置

    (4)获取session

      request.session[key]  或者

      request.session.get('key', ‘’)

    (5) 删除session 

      request.session.pop(key)     删除某个键值对

      del request.session['key']

      request.session.delete()   删除所有的session键值对

      request.session.flush()   删除所有的session键值对及cookie键值对

      request.session.set_expiry()   设置超时时间request.session.clear_expired()    清除当前过期的session

    (6)session的其他的配置

    SESSION_COOKIE_NAME = 'sessionid'
    # Age of cookie, in seconds (default: 2 weeks).
    SESSION_COOKIE_AGE = 60 * 60 * 24 * 7 * 2
    # Whether to save the session data on every request.
    SESSION_SAVE_EVERY_REQUEST = False
    # Whether a user's session cookie expires when the Web browser is closed.
    SESSION_EXPIRE_AT_BROWSER_CLOSE = False

    3.在设置session时,涉及了数据的传输,需以json的形式,所以在设置session时,其对应的值要符合转换为json的数据类型。获取session时其又会反序列化回来

  • 相关阅读:
    hibernate03增删改查
    hibernate02环境的搭建
    hibernate01ORM的引入
    20170623_oracle_优化与体系结构
    20170626_oracle_数据库设计
    logging模块
    hashlib模块
    json和pickle模块
    sys模块
    os模块
  • 原文地址:https://www.cnblogs.com/zhaosijia/p/9671719.html
Copyright © 2020-2023  润新知