Cookie 简单设置使用

Posted alex-hrg

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Cookie 简单设置使用相关的知识,希望对你有一定的参考价值。

cookie的理解可以为,存放在用户浏览器上的一个文件,里面是键值对数据,用于跟服务端通讯。

1、获取Cookie:

1
2
3
4
5
6
request.COOKIES[‘key‘]
request.get_signed_cookie(key, default=RAISE_ERROR, salt=‘‘, max_age=None)
    参数:
        default: 默认值
           salt: 加密盐
        max_age: 后台控制过期时间

2、设置Cookie:

1
2
3
4
5
6
7
8
9
10
11
12
13
rep = HttpResponse(...) 或 rep = render(request, ...)
 
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传输,网站走https时要加上
        httponly=False    只能http协议传输,无法被javascript获取(不是绝对,底层抓包可以获取到也可以被覆盖)

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

简单例子:

views:

技术分享图片
 1 from django.shortcuts import render,HttpResponse,redirect
 2 
 3 dic = {
 4     "tom":{"pwd":123},
 5     "lily":{"pwd":111}
 6 }
 7 def login(request):
 8     if request.method=="GET":
 9         return render(request,login.html)
10     u=request.POST.get(user)
11     pwd=request.POST.get(pwd)
12     if dic.get(u):
13         if dic[u]["pwd"]==pwd:
14             res=redirect(/home)
15             # res.set_cookie(‘user1‘,u)  #不设置缓存有效时间,浏览器重启后失效
16             # res.set_cookie(‘user1‘,u,max_age=5)  #设置max_age指定多少秒后失效
17             import datetime
18             curr_time=datetime.datetime.now()
19             expire_time=curr_time + datetime.timedelta(seconds=5)
20             print(curr_time,expire_time)
21             res.set_cookie(user1,u,expires=expire_time)  #设置max_age指定多少秒后失效
22             return res
23     else:
24         return redirect(/login)
25     return redirect(/login)
26 
27 def home(request):
28     v = request.COOKIES[user1]
29     if not v:
30         return render(request,login.html)
31 
32 
33     return render(request,home.html,{"curr_user":v})
View Code

templates:

技术分享图片
 1 login.html
 2 <!DOCTYPE html>
 3 <html lang="en">
 4 <head>
 5     <meta charset="UTF-8">
 6     <title>Title</title>
 7 </head>
 8 <body>
 9 <form action="/login" method="post">
10     <input type="text" name="user" placeholder="用户名" />
11     <input type="text" name="pwd" placeholder="密码" />
12     <input type="submit"/>
13 </form>
14 </body>
15 </html>
16 
17 home.html
18 <!DOCTYPE html>
19 <html lang="en">
20 <head>
21     <meta charset="UTF-8">
22     <title>Title</title>
23 </head>
24 <body>
25 <h1>欢迎你,{{ curr_user }}</h1>
26 </body>
27 </html>
View Code

 

以上是关于Cookie 简单设置使用的主要内容,如果未能解决你的问题,请参考以下文章

简单认识 cookie

简单认识 cookie

XSS:如何从 C# 中的字符串中删除 JS 片段?

Django cookie 横幅:window.wpcc 未定义

C#-WebForm-★内置对象简介★Request-获取请求对象Response相应请求对象Session全局变量(私有)Cookie全局变量(私有)Application全局公共变量Vi(代码片段

根据 ASP.NET 中的角色设置身份验证 cookie 超时长度