django项目---session会话

讲到session,就会涉及到cookie,我们可能就会去想两者有什么不同,去看一下便知:https://www.zhihu.com/question/19786827

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

需要进行一些步骤,才能用 -------
(1).installed_app  


(2).设中间件  


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

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


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

   

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

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


在运行项目后,会成功跳转显示登录成功;当我们关闭并且再次启动浏览器的时候,发现没啥变化嘛
不论怎么去刷新,都没有什么用  ; 这个时候,就应该考虑到 cookie 
cookie的数据保存在浏览器,而session的数据是保存在数据库中的
在把浏览器中的cookie数据清除之后,再次登录进去,就可以了







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





  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值