1.在django中使用session(是一个模块session默认生命周期为两周,session可以存储数据,存放在数据库中)




需要进行一些步骤,才能用 -------


(1).installed_app  


django_session 清理 django的session使用_数据库






(2).设中间件  


django_session 清理 django的session使用_django_02






(3).设置存储形式   (按 ctrl + alt + r 输入migrate session 创建django_session数据库)


django_session 清理 django的session使用_django_03




在我们进入到数据库后,就能够发现session表已经存在


django_session 清理 django的session使用_django_04






(4).在代码中引用(request.session);


我们在views.py文件中修改代码,想要达到让用户方便快捷进行操作,在用户登录成功之后,将其保存在session




   

django_session 清理 django的session使用_数据库_05





下一步,我们要去配置urls.py文件,是bloguser文件夹下的




django_session 清理 django的session使用_数据库_06



再下面一步,我们去welcome.html文件中添加一些代码,能让我们在提交数据后,跳出一个提示登录成功的页面


django_session 清理 django的session使用_数据_07




在运行项目后,会成功跳转显示登录成功;当我们关闭并且再次启动浏览器的时候,发现没啥变化嘛


不论怎么去刷新,都没有什么用  ; 这个时候,就应该考虑到 cookie 


cookie的数据保存在浏览器,而session的数据是保存在数据库中的


在把浏览器中的cookie数据清除之后,再次登录进去,就可以了


django_session 清理 django的session使用_数据库_08











2.如果用户是第一次请求(如何看用户是不是第一次请求,就看客户端ID是否保存了session的cookie)



         创建 session model
              a)生成一个key sessionID  随机的一个字符串----> uuid
              b)保存到session_engine指定的位置
              c)保存到cookie中,也就是用户的浏览器中


   


    如果是第二次或以上的请求,客户端Ie都会自动提交cookie到django,
               django中利用SessionMiddleWare中间件激活session,
               利用cookie中sessionID到session_engine指定的位置读取session model,
               并设置到request的session属性上。
   
   正是因为这样的情况,我们才能在view里面通过request.session,使用session能力
   而且session本身就是一个dict字典; session再存数据必须支持序列化json !





3.Django中对于session的存储方式; 内部提供了5种类型session供开发者去使用:
       a) 数据库(默认)
      b) 缓存
       c) 文件
      d)  缓存+数据库
       e)加密cookie