文章目录
Cookies
HTTP请求是无状态的,每一次请求对于服务端来说都是独立的,一个请求对应一个相应,把相应返回给你连接就断开了,
如何保存请求的状态或者7天免登录呢,如当用户登录成功后返回一个index页面,返回响应对象时可以偷偷在响应对象中塞一个小纸条,然后在本地存起来,下次再用同样的浏览器访问index页面时,看看小纸条是否是刚刚发送的小纸条,就可以判断有没有登录,如果没有登录过就访问index是没有小纸条的,就跳转到登录页面,反之,就可以访问index页面
Cookie就是服务器给浏览器发送的小纸条,保存在浏览器中的键值对。
如:
登录后
怎样在服务端设置cookies呢?
Django中针对响应对象设置cookie,就是响应什么,就在这个响应对象中添加小纸条
看看返回给index页面的cookies中的内容
字典类型的
如果把浏览器关了cookies默认失效了,
现在我想实现访问多个网页时,先看有没有登录过,也就是先判断有没有cookies,如果没有就跳转到登录页面,可以使用装饰器,装饰多个视图函数。
-
登录后怎样跳转到原来的页面
以上登录后都跳转到了/index/,怎样根据实际给定的url去跳转到该页面呢
在html文件中的action设置为跳转到当前页面,也就是空,思路代码如下
-
关于浏览器端cookies的设置
服务端给浏览器小纸条,浏览器也可以不用这个小纸条,设置步骤
由于http协议没有办法保存登录状态,必须借助cookies这个手段
如果设置为禁止接收cookies,服务器想写cookie,浏览器不让
如
-
max_age=None, 超时时间,
在一个网站登录,默认关闭浏览器就失效了,如果点击7天免登录会在cookie中返回给浏览器时,这个cookie有7天的有效期,7天内再取访问这个页面时就不需要登录,如
- 加盐
- 删除cookie
在网站上登录完了后注销,退出就把该页面存在浏览器的所有cookie清除。
rep.delete_cookie(‘user’)