开发者社区> 技术小胖子> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

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








版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
Django之路——8 cookie 和sessions
会话跟踪技术   1 什么是会话跟踪技术  我们需要先了解一下什么是会话!可以把会话理解为客户端与服务器之间的一次会晤,在一次会晤中可能会包含多次请求和响应。例如你给10086打个电话,你就是客户端,而10086服务人员就是服务器了。
1436 0
DjangoORM 操作 | 学习笔记
快速学习 DjangoORM 操作
50 0
django的orm中F对象的使用
今天不巧就用上了。 就是将数据库的字段,自增1的场景。 from django.db.models import F DeployPool.objects.filter(name=deployversion_id).
1218 0
Django中的ORM
1. 数据库的配置 Django可以配置使用sqlite3,mysql,oracle,postgresql等数据库 在一个Django项目中,默认使用的是sqlite3数据库 DATABASES = { 'default': { 'ENGINE': 'django.
949 0
Django学习(第四天:ORM&Model)
ORM,是一种程序技术,用于实现面向对象编程语言里不同类型系统的数据之间的转换。 Model from django.utils import timezone # Create your models here.
948 0
Django ORM模型:想说爱你不容易
作者:Vamei 出处:http://www.cnblogs.com/vamei 严禁转载。   使用Python的Django模型的话,一般都会用它自带的ORM(Object-relational mapping)模型。
1158 0
这篇 感觉很实用--DJANGO ORM
Django之model F/Q以及多对多操作 http://www.cnblogs.com/ccorz/p/5882400.html model之F/Q操作 F操作,使用查询条件的值 打个比方吧,有一张表,保存着公司员工的工资,公司普涨工资,如何在model中操作,这就用到了F,首先需要导入此模块: from django.
1273 0
实用型的DJANGO ORM
比较深入一点的内容,需要用时,用心看看。 URL:   https://www.sitepoint.com/doing-more-with-your-django-models/ https://www.
1010 0
作DJANGO ORM时的一些最佳实践
还是国外的正规,都在作DJANGO ORM的解藕化工作了。 外键不用,多对多,一对多,不用。   参考URL: http://scottlobdell.me/2015/01/sql-database-best-practices-django-orm/ ==========这个网站有很多D...
991 0
【转】建立一个更高级别的查询 API:正确使用Django ORM 的方式
这个就比较深入啦。。。 http://www.oschina.net/translate/higher-level-query-api-django-orm 结论: 在视图和其他高级应用中使用源生的ORM查询代码不是很好的主意。
813 0
21114
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载