14.Django之操作cookie

简介:

一、cookie简介

1.cookie就是保存在浏览器端的键值对。

2.服务端可以去编写存放在浏览器端的cookie。

3.客户端每次访问服务器请求的时候,都会携带cookie到服务端。

4.cookie会被放在请求头

二、如何在django中操作cookie?

1.从request 请求对象中的cookie里通过指定的key来获取相应的值。

test = request.COOKIES.get('key1') #获取cookie中key1这个key所对应的值。

下面是一个简单的应用示例:

def login(request):

c_user = request.COOKIES.get('username')

if not c_user:

return redirect('/login/')

#如果没有从浏览器响应头中得到username对应的value,那么直接跳转回登录页面。


2.cookie回写。

if request.method == "GET":

return render(request,'login.html')

else:

user = request.POST.get('username')

pwd = request.POST.get('password')

if user == 'admin' and pwd =='admin':

obj = redirect('/admin/')

obj.set_cookie('username','xxxx')  ###为浏览器回写cookie!!key为username 对应的value为xxx。

return obj

else:

return render(request,'login.html')


3.设置cookie声明周期。

如果想在回写cookie时,可以给cookie加一个超时时间,就可以使用max_age参数。

例如:

obj.set_cookie('username','xxxx',max_age=10)  ###为浏览器回写cookie!!key为username 对应的value为xxx,并且cookie的声明周期为10秒,10秒后自动消失。


4.设置cookie作用域。

如果需要设置cookie的作用域,可以通过response的set_cookie中的path参数去进行设置。

path='/'  #代表对整个站点生效。

path='/p1' #代表对www.xxxx.com/p1/*站点生效。


还可以通过domain参数来设置,这个cookie对哪个域名生效。

默认为当前域名。


5.安全相关参数。


secure= False  #默认值为False ,也就是关闭状态,当使用https时,需要开启。

httponly = False #默认值为False ,默认也是关闭状态,如果开启了httponly,那么这个cookie只能在http请求传输的时候可以被读取,

js是无法读取这个cookie的。




6.cookie的简单签名。

通过response回写cookie时。

obj.set_signed_cookie('kkk','vvv',salt='123456') #通过加盐的方式为cookie签名。


request.get_signed_cookie('kkk',salt='123456') #获取经过签名后的cookie值。





      本文转自苏浩智 51CTO博客,原文链接:http://blog.51cto.com/suhaozhi/2063468,如需转载请自行联系原作者








相关文章
|
1月前
|
关系型数据库 MySQL 数据库连接
使用Django框架完成用户的增删改查操作
使用Django框架完成用户的增删改查操作
52 1
|
8月前
|
SQL 关系型数据库 MySQL
Django入门ORM(Django操作MySQL) 专题一
Django入门ORM(Django操作MySQL) 专题一
|
10天前
|
中间件 数据库 Python
Django——会话.Cookie&Session
Django——会话.Cookie&Session
|
1月前
|
存储 Web App开发 安全
Django中Cookie相关操作
Django中Cookie相关操作
|
1月前
|
Oracle 关系型数据库 MySQL
Django框架ORM操作(二)
Django框架ORM操作(二)
|
1月前
|
SQL 存储 前端开发
Django框架ORM操作(一)
Django框架ORM操作(一)
Django框架ORM操作(一)
|
1月前
|
存储 JavaScript 前端开发
JavaScript DOM 操作:解释一下 cookie、sessionStorage 和 localStorage 的区别。
Cookie是服务器发送至客户端的文本信息,会随每个请求发送回服务器,适合控制会话状态但可能暴露隐私。SessionStorage仅在当前会话中存储数据,关闭浏览器后清除,适合临时存储如登录状态。LocalStorage则持久保存数据,即使关闭浏览器也不会清除,适用于存储长期设置。三种方式各有侧重,应按需求选择。
20 0
|
8月前
|
缓存 关系型数据库 MySQL
Django操作MySQL数据库的优化方法
Django操作MySQL数据库的优化方法
|
1月前
|
SQL API 数据库
一篇文章带你了解Django ORM操作
一篇文章带你了解Django ORM操作
28 0
|
1月前
|
缓存 中间件 API
使用 Django 的异步特性提升 I/O 类操作的性能
使用 Django 的异步特性提升 I/O 类操作的性能
76 0