码迷,mamicode.com
首页 > 其他好文 > 详细

cookie操作

时间:2017-11-21 23:58:59      阅读:375      评论:0      收藏:0      [点我收藏+]

标签:mon   main   object   查询   dir   rip   params   数据   function   

cookie

  :客户端浏览器上的一个文件,用键值对的方式存储在文件中。在服务器端和客户端都可以对其进行设置和获取。利用这一特性,可以对用户进行登录认证,设置分页....

服务器端:

在views.py中:

  设置

    rep = HttpResponse(...) 或 rep = render(request, ...),rep = redirect(...)

    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.)   //

         import datetime

        current_date = datetime.datetime.utcnow()

        current_date = current_date + datetime.timedelta(seconds=5)

        res.set_cookie(‘key‘,"value",expires=current_date)

    path=‘/‘, Cookie生效的路径,/ 表示根路径,特殊的 跟路径的cookie可以被网站的任何url的页面访问,如"/index",只能index下能访问

    domain=None, Cookie生效的域名,在哪个子url下生效

    secure=False, https传输(https时,设为ture)

    httponly=True 只能http协议传输,无法被JavaScript获取(不是绝对,底层抓包可以获取到也可以被覆盖)

  获取:

    def cookie(request): # 获取 Cookie #

    request.COOKIES # 客户端发来的所有Cookie #

    request.COOKIES[‘username111‘] # 这个Cookie,就是字典

    request.COOKIES.get(‘username111‘)

 

在服务器端登录时设置cookie: 

 def login(request):
msg = ‘‘
if request.method == ‘POST‘://提交的数据
username = request.POST.get(‘username‘)
password = request.POST.get(‘password‘)
v = models.Administrator.objects.filter(username=username,password=password).count()//查询数据库
if v:
rep = redirect(‘/app/index/‘)
rep.set_cookie(‘username‘,username)
return rep
else:
msg = ‘用户名或密码错误‘
return render(request,‘login.html‘,{‘msg‘:msg})
客户端访问其他url时,获取cookie对其进行身份认证:
def index(request):
username = request.COOKIES.get(‘username‘)
if username:
return render(request,‘index.html‘,{‘username‘:username})
else:
return redirect(‘/app/login‘)
客户端:

  <script src="/static/jquery-2.1.4.min.js"></script>//导入jquery
  <script src="/static/jquery.cookie.js"></script>//导入jQuery.cookie用于方便操作cookie
  <script>
    // $.cookie()
    //一个参数: $.cookie(k) 获取值
    //二个参数: $.cookie(k,v) 设置值
    $.cookie(‘k‘,‘v‘,{‘path‘: ‘/index.html‘})//{}中参数和服务器端一致,键值对的方式
  </script>

 补充:

    obj.set_signed_cookie(‘username‘,"kangbazi",salt="asdfasdf") # 加密方式设置cookie

    request.get_signed_cookie(‘username‘,salt="asdfasdf") # 加密获取

cookie操作

标签:mon   main   object   查询   dir   rip   params   数据   function   

原文地址:http://www.cnblogs.com/jcplee/p/7875545.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!