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,如需转载请自行联系原作者








相关文章
|
6月前
|
关系型数据库 MySQL 数据库连接
使用Django框架完成用户的增删改查操作
使用Django框架完成用户的增删改查操作
88 1
|
4月前
|
存储 JavaScript 前端开发
Django + Vue 实现图片上传功能的全流程配置与详细操作指南
 在现代Web应用中,图片上传是一个常见且重要的功能。Django作为强大的Python Web框架,结合Vue.js这样的现代前端框架,能够高效地实现这一功能。本文将详细介绍如何在Django项目中配置图片上传的后端处理,并在Vue前端实现图片的选择、预览和上传功能。
|
4月前
|
SQL 数据库 Python
Django框架数据库ORM查询操作(6)
【7月更文挑战第6天】```markdown Django ORM常用数据库操作:1) 查询所有数据2) 根据ID查询 3) 精确查询 4) 分页排序
61 1
|
5月前
|
关系型数据库 MySQL 数据库
『Django』模型入门教程-操作MySQL
一个后台如果没有数据库可以说废了一半。日常开发中大多数时候都在与数据库打交道。Django 为我们提供了一种更简单的操作数据库的方式。 在 Django 中,模型(Model)是用来定义数据库结构的类。每个模型类通常对应数据库中的一个表,类的属性对应表中的列。通过定义模型,Django 的 ORM(Object-Relational Mapping)可以将 Python 对象映射到数据库表,并提供一套 API 来进行数据库操作。 本文介绍模型的用法。
|
5月前
|
存储 安全 网络协议
Django路由与会话深度探索:静态、动态路由分发,以及Cookie与Session的奥秘
Django路由与会话深度探索:静态、动态路由分发,以及Cookie与Session的奥秘
|
5月前
|
数据库 开发者 Python
Django ORM入门指南:从概念到实践,掌握模型创建、迁移与视图操作
Django ORM入门指南:从概念到实践,掌握模型创建、迁移与视图操作
|
5月前
|
中间件 数据库 Python
Django——会话.Cookie&Session
Django——会话.Cookie&Session
|
6月前
|
存储 Web App开发 安全
Django中Cookie相关操作
Django中Cookie相关操作
|
6月前
|
SQL 存储 前端开发
Django框架ORM操作(一)
Django框架ORM操作(一)
Django框架ORM操作(一)
|
6月前
|
Oracle 关系型数据库 MySQL
Django框架ORM操作(二)
Django框架ORM操作(二)