您的位置:首页 > 编程语言 > Go语言

Django值Cookie基础

2016-09-27 22:35 429 查看

一、什么是Cookie?

  Cookies就是服务器暂时存放在你的电脑里的资料(.txt格式的文本文件),好让服务器用来辨认你的计算机。当你在浏览网站的时候,Web服务器会先送一小小资料放在你的计算机上,Cookies 会把你在网站上所打的文字或是一些选择都记录下来。当下次你再访问同一个网站,Web服务器会先看看有没有它上次留下的Cookies资料,有的话,就会依据Cookie里的内容来判断使用者,送出特定的网页内容给你  

  简单来说就是讲用户登入信息保存在本地游览器端的一个容器或者键值对

二、什么是Seesion?

  Session:在计算机中,尤其是在网络应用中,称为“会话控制”。Session 对象存储特定用户会话所需的属性及配置信息。这样,当用户在应用程序的 Web 页之间跳转时,存储在 Session 对象中的变量将不会丢失,而是在整个用户会话中一直存在下去。当用户请求来自应用程序的 Web 页时,如果该用户还没有会话,则 Web 服务器将自动创建一个 Session 对象。当会话过期或被放弃后,服务器将终止该会话

  简单来说seesion就是用户向服务器发送请求(以cookie方式发送),服务器在接收用户请求时,将用户信息以session方式保存在服务器端,并生成随机字符串附带给cookie返回值中,当用户再次向服务器发送请求时,随便带着服务器端生成的随机字符串,依次来核对是否是同一个用户,session依赖于cookie。

三、Cookie

  1、获取Cookie:  

//获取用户Cookie值
request.COOKIES['key']
//
request.get_signed_cookie(key, default=RAISE_ERROR, salt='', max_age=None)
参数:
default: 默认值
salt: 加密盐
max_age: 后台控制过期时间


  2、设置Cookie:

rep = HttpResponse(...) 或 rep = render(request, ...)
//设置Cookie值
rep.set_cookie(key,value,...)
rep.set_signed_cookie(key,value,salt='加密盐',...)
参数:
key,              键
value='',         值
max_age=None,     超时时间
expires=None,     超时时间(IE requires expires, so set it if hasn't been already.)
path='/',         Cookie生效的路径,/ 表示根路径,特殊的:跟路径的cookie可以被任何url的页面访问
domain=None,      Cookie生效的域名
secure=False,     https传输
httponly=False    只能http协议传输,无法被JavaScript获取(不是绝对,底层抓包可以获取到也可以被覆盖)


  由于cookie保存在客户端的电脑上,所以,JavaScript和jquery也可以操作cookie。  

<script src='/static/js/jquery.cookie.js'></script>
$.cookie("list_pager_num", 30,{ path: '/' });


四、Session

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

•数据库(默认)
•缓存
•文件
•缓存+数据库
•加密cookie


  1、数据库Session

a. 配置 settings.py

SESSION_ENGINE = 'django.contrib.sessions.backends.signed_cookies'   # 引擎
b. 使用

同上


View Code
更多参考:猛击这里猛击这里

  扩展:Session用户验证  

def login(func):
def wrap(request, *args, **kwargs):
# 如果未登陆,跳转到指定页面
if request.path == '/test/':
return redirect('http://www.baidu.com')
return func(request, *args, **kwargs)
return wrap


完善中、、、
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: