Django框架基础之COOKIE

Posted 柳姑娘

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Django框架基础之COOKIE相关的知识,希望对你有一定的参考价值。

cookie:
a. 保存在浏览器端“键值对”
b. 服务端可以向用户浏览器端写cookie
c. 客户端每次方请求时,会携带cookie去

服务端给浏览器发送cookie:
obj=redirect(‘‘)
obj.set_cookie()
obj.set_signed_cookie(key,value,salt=‘‘,)

服务端从浏览器获取cookie:
request.COOKIE.get(‘key‘)
request.get_signed_cookie()

cookie: key, 键
value=‘‘, 值
max_age=None, 超时时间 以秒为单位
expires=None, 超时时间
path=‘/‘, cookie生效的路径,/表示根路径,根路径的cookie可以被任何url的页面访问
domain=None, cookie生效的域名
secure=False, https传输
httponly=False 只能http协议传输,无法被javascript获取(不是绝对,底层抓包可以获取到也可以覆盖)

应用: a 投票
b 用户登录

技术分享
1 在URL前加https://前缀表明是用SSL加密的。 你的电脑与服务器之间收发的信息传输将更加安全。
2 Web服务器启用SSL需要获得一个服务器证书并将该证书与要使用SSL的服务器绑定。
3 http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。http的连接很简单,是无状态的,... 
4 HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议
5 要比http协议安全
https

 

利用cookie做用户验证:

技术分享
 1 def login(request):
 2     if request.method==GET:
 3         return render(request,login.html)
 4     else:
 5         username=request.POST.get(username)
 6         passwd=request.POST.get(passwd)
 7         if username==alex and passwd==123:
 8             obj=redirect(/classes/)
 9             # obj.set_cookie(‘ticket‘,‘dfsgtrhfgtd‘,max_age=‘10‘)  #最大时效    ‘一个月免登陆’
10             obj.set_signed_cookie(ticket,123,salt=666,max_age=10)    #ticket=123:1dNbYh:Y3vofyscBVHMEOmld_Y7k-_iTjg
11             return obj
12         else:
13             return render(request,login.html)
View Code
技术分享
 1 #cookie验证装饰器函数
 2 def login_later(func):
 3     def wrapper(*args):
 4 
 5         print(args[0])   #<WSGIRequest: GET ‘/classes/‘>
 6 
 7         # ticket = args[0].COOKIES.get(‘ticket‘)
 8         ticket=args[0].get_signed_cookie(ticket,salt=666)
 9         if not ticket:
10             return redirect(/login/)
11         else:
12             return func(*args)
13     return wrapper
View Code

 

以上是关于Django框架基础之COOKIE的主要内容,如果未能解决你的问题,请参考以下文章

Django基础---web框架 和 django 介绍3 --model --form---跨站请求---cookie--session--分页--缓存--信号

Django基础之jQuery操作cookie

django框架的基础知识点《贰》

pyhton框架Django之cookie和session

Django之前端基础cookie使用

Django框架 之 CookieSession整理补充