Bonky
Neither believe nor reject anything, because any other person has rejected or believed it. Heaven has given you a mind for judging truth and error, Use it.
By Thomas Jefferson

Django之session

Session是服务器端为了保存某些数据,或实现某些必要的功能,当用户访问服务器时,将数据临时保存在服务器端以供完成服务器端的其他某些功能。服务器需要保存的数据可以以cookie的方式存储在客户端,而session的功能就是将服务器需要保存的数据存储在服务端。例如账号登录记录的功能,可以以session的方式将登录状态保存在服务器端,这样当用户访问其他程序时,需要用到登录的地方,都可以从该用户的session中取出该用户的数据,为用户服务。

session和cookie的区别

session的底层是基于cookie技术来实现的,当用户打开浏览器,去访问服务器的时候,服务器会为每个用户的浏览器创建一个会话对象(session对象),并且为每个session对象创建一个Jsessionid号。当session对象创建成功后,会以cookie的方式将这个Jsessionid号回写给浏览器,当用户再次进行访问服务器时,及带了具有Jsessionid号的cookie数据来一起访问服务器,服务器通过不同session的 Jsessionid号来找出与其相关联的session对象,通过不同的session对象来为不同的用户服务。

img

在Django中session的使用方法

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

  • 数据库(默认):持久
  • 缓存:速度快
  • 文件:磁盘的 I/O 瓶颈问题,导致这种方案存储数据效率不是很高
  • 缓存+数据库:结合两者优点,但不过性能要求高
  • 加密cookie:适用于对数据保密性不严格的场景

配置 settings.py

使用

参考资料

  1. 在Django中Session的那点事!

  2. Django 使用会话( sessions )功能

Share

You may also like...

发表评论

电子邮件地址不会被公开。 必填项已用*标注