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