django进阶之饼干和会话的使用示例

  

饼干:是浏览器为Web服务器存储的一小段信息。每次浏览器从某个服务器请求页面时,它收到服务器回发送过来的饼干。它保存在浏览器下的某个文件夹下。
  

  

会话:Django的会话机制会向请求的浏览器发送饼干字符串。同时也会保存到本地一份,用来验证浏览器登录是否为同一用户。它存在于服务器,Django默认会把会话存入到数据库中。

  

会话依赖于饼干,如果浏览器不能保存饼干那么会话就失效了。因为它需要浏览器的Cookie值(sessionid)去会话里做对比.session就是用来在服务器端保存用户的会话状态。

  

 django进阶之饼干和会话的使用示例

  

  

1,获取饼干:

        request.COOKIES(例子)   request.COOKIES.get(关键)   #普通饼干是明文传输的,可以直接在客户端直接打开,所以需要加盐,解盐之后才能查看   请求。get_signed_cookie(键,默认=RAISE_ERROR、盐=" max_age=None)      

参数:   

      <李>默认值:默认值   <李>盐:加密盐   <李> max_age:后台控制过期时间李   
  

2,设置饼干:

        代表=HttpResponse(…)或代表=渲染(请求,…)   rep.set_cookie(关键值,…)   #给饼干签名   rep.set_signed_cookie(关键值,盐='加密盐”,…)      

参数:   

      <李>键,键   <李>="值,值   <李> max_age=None,超时时间李   <李>=没有到期,超时时间(即需要到期,所以把它如果没有了。)   <李>路径='/',饼干生效的路径,/表示根路径,特殊的:跟路径的饼干可以被任何url的页面访问李   <李>域=None,饼干生效的域名李   <李>安全=False, https传输李   <李> httponly=False真的只能http协议传输,无法被JavaScript获取(不是绝对,底层抓包可以获取到也可以被覆盖),防止xss攻击   
  

由于饼干保存在客户端的电脑上,所以,JavaScript和jquery也可以操作饼干。

        & lt;脚本src=" https://www.yisu.com/static/js/jquery.cookie.js "祝辞& lt;/script>   美元。30岁的饼干(“list_pager_num”{路径:'/'});      

  

Django中默认支持会话,其内部提供了5种类型的会话供开发者使用:

  

数据库(默认)
  缓存
  文件
  缓存+数据库
  加密饼干

  

<强> 1,数据库会话

  

Django默认支持会话,并且默认是将会话数据存储在数据库中,即:django_session表中。

  

。配置settings.py

        SESSION_ENGINE=' django.contrib.sessions.backends。db ' #引擎(默认)      SESSION_COOKIE_NAME=" sessionid " #会话的饼干保存在浏览器上时的关键,即:sessionid=随机字符串(默认)      SESSION_COOKIE_PATH="/" #会话的饼干保存的路径(默认)      SESSION_COOKIE_DOMAIN=#没有会话的饼干保存的域名(默认)      SESSION_COOKIE_SECURE=False #是否Https传输饼干(默认)      SESSION_COOKIE_HTTPONLY=True #是否会话的cookie只支持http传输(默认)      SESSION_COOKIE_AGE=1209600 #会话的饼干失效日期(2周)(默认)      SESSION_EXPIRE_AT_BROWSER_CLOSE=False #是否关闭浏览器使过得会话期(默认)      SESSION_SAVE_EVERY_REQUEST=False #是否每次请求都保存会话,默认修改之后才保存(默认)      

b。使用

        def指数(请求):   #获取,设置,删除会话中数据   request.session (k1的)   request.session.get (k1,没有)   请求。会话(k1的)=123   request.session.setdefault (k1, 123) #存在则不设置   德尔request.session (k1的)      #所有键值,键值对   request.session.keys ()   request.session.values ()   request.session.items ()   request.session.iterkeys ()   request.session.itervalues ()   request.session.iteritems ()      #用户会话的随机字符串   request.session.session_key      #将所有会话失效日期小于当前日期的数据删除   request.session.clear_expired ()      #检查用户会话的随机字符串在数据库中是否   request.session.exists (“session_key”)      #删除当前用户的所有会话数据   request.session.delete (“session_key”)   之前      

django进阶之饼干和会话的使用示例