Cookie和Session的原理及在Django中的作用

2022-10-1820:56:59后端程序开发Comments713 views字数 1035阅读模式

Cookie和Session一样,是django中用于视图保持状态的方案之一。由于HTTP被设计为”无状态”,每次请求都处于相同的空间中。 在一次请求和下一次请求之间没有任何状态保持,我们无法根据请求的任何方面(IP地址,用户代理等)来识别来自同一人的连续请求。但是还有保证用户登陆过之后,还要保证登陆了的用户不需要再重复登陆,就能够访问我网站的其他的网址的页面,对不对,但是http无状态啊,怎么保证这个事情呢?此时就要找cookie和session了。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/28365.html

1.cookie和session的原理文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/28365.html

cookie的工作原理是:浏览器访问服务端,带着一个空的cookie,然后由服务器产生内容,浏览器收到相应后保存在本地;当浏览器再次访问时,浏览器会自动带上Cookie,这样服务器就能通过Cookie的内容来判断这个是“谁”了。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/28365.html

cookie 是在浏览器端保存键值对数据,而 session 是在服务器端保存键值对数据 session 的使用依赖 cookie:在使用 Session 后,会在 Cookie 中存储一个 sessionid 的数据,每次请求时浏览器都会将这个数据发给服务器,服务器在接收到 sessionid 后,会根据这个值找出这个请求者的 Session。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/28365.html

2.如何设置cookie和session文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/28365.html

1)设置cookie的方法文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/28365.html

格式:HttpResponse().set_cookie(键名,对应的值,过期时间)文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/28365.html

Cookie和Session的原理及在Django中的作用文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/28365.html

2)设置session的方法文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/28365.html

首先需要在setting.py中设置文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/28365.html

①MIDDLEWARE_CLASSES 确保其中包含以下内容:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/28365.html

'django.contrib.sessions.middleware.SessionMiddleware',文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/28365.html

②INSTALLED_APPS 是包含文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/28365.html

'django.contrib.sessions',文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/28365.html

然后设置session的格式:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/28365.html

request.session[key] = value文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/28365.html

Cookie和Session的原理及在Django中的作用文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/28365.html

3.如何查询cookie和session文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/28365.html

1)查询cookie的方法文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/28365.html

格式:value = request.COOKIES["cookie_key"]Cookie和Session的原理及在Django中的作用文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/28365.html

2)查询session的方法文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/28365.html

格式:request.session.get(key,default=None)文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/28365.html

Cookie和Session的原理及在Django中的作用文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/28365.html

4.如何删除cookie和session文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/28365.html

1)删除cookie的方法文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/28365.html

格式:response.delete_cookie("cookie_key")文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/28365.html

2)删除session的方法文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/28365.html

格式:del request.session[key]文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/28365.html

  • 本站内容整理自互联网,仅提供信息存储空间服务,以方便学习之用。如对文章、图片、字体等版权有疑问,请在下方留言,管理员看到后,将第一时间进行处理。
  • 转载请务必保留本文链接:https://www.cainiaoxueyuan.com/bc/28365.html

Comment

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定