Django 设置cookies与获取cookies.

摘要: 在Django里面,使用Cookie和Session看起来好像是一样的,使用的方式都是request.COOKIES[XXX]和request.session[XXX],其中XXX是您想要取得的东西的key, 很久以前,写过一篇 django怎么处理session 的文章:django 自定义session 处理, 今天对cookies 进行了同样的操作

在Django里面,使用Cookie和Session看起来好像是一样的,使用的方式都是request.COOKIES[XXX]和request.session[XXX],其中XXX是您想要取得的东西的key, 很久以前,写过一篇 django怎么处理session 的文章:django 自定义session 处理, 今天对cookies 进行了同样的操作:

from django.template import loader ,Context
from django.http import HttpResponse

def main(request):
      #不用模板
      response= HttpResponse('test')
      response.set_cookie('my_cookie','cookie value')
      return response

def main(request):
      #用模板
      response= render_to_response('xxxx.html', {})
      response.set_cookie('my_cookie','cookie value')
      return response


使用模板的情况和不使用模板的情况都做了测试, 可以向浏览器设置cookies, 在客户端可以用javascript 取出来:
function getCookie(c_name)
{
if (document.cookie.length>0)
  {
  c_start=document.cookie.indexOf(c_name + "=")
  if (c_start!=-1)
    { 
    c_start=c_start + c_name.length+1 
    c_end=document.cookie.indexOf(";",c_start)
    if (c_end==-1) c_end=document.cookie.length
    return unescape(document.cookie.substring(c_start,c_end))
    } 
  }
return ""
}


用上面的javascript 函数可以取出cookies, 如果需要在django 里面取出 cookies 呢,也很简单:
 value = request.COOKIES["cookie_key"]


同样的道理,也可以用 javascript 写 cookies,
function setCookie(c_name,value,expiredays)
{
var exdate=new Date()
exdate.setDate(exdate.getDate()+expiredays)
document.cookie=c_name+ "=" +escape(value)+
((expiredays==null) ? "" : ";expires="+exdate.toGMTString())
}


上面总结了用 django 读写cookies 与 用javascript 读写cookies. 根据不同的情况, 这两种方法是经常混合在一起使用的.

上一篇: spring3 restful 服务迁移到 spring4需要注意的事项
下一篇: 软件开发规范, 各种软件开发文档模板下载

Avatar

coolbaby 评论于: 2014-02-25

其实完全用javascript 就可以了,特殊情况在服务端读写。
 评论 ( What Do You Think )
名称
邮箱
网址
评论
验证
   
 

 


  • 微信公众号

  • 我的微信

站点声明:

1、一号门博客CMS,由Python, MySQL, Nginx, Wsgi 强力驱动

2、部分文章或者资源来源于互联网, 有时候很难判断是否侵权, 若有侵权, 请联系邮箱:summer@yihaomen.com, 同时欢迎大家注册用户,主动发布无版权争议的 文章/资源.

3、鄂ICP备14001754号-3, 鄂公网安备 42280202422812号