135.在django中操作cookie
2024-09-06 19:49:03
操作cookie
设置cookie
设置cookie是设置值给浏览器的,因此我们可以通过response的对象来设置,可以通过HttpResponse的对象或者是HttpResponseBase的子类对象来设置,设置cookie可以通过response.set_cookie来设置,这个方法的相关参数如下:
(1)key:这个cookie的key。
(2)value:这个cookie的value。
(3)max_age:最长的生命期。单位是秒。
# 2. 设置过期时间为两分钟过后
response.set_cookie('username', 'guyan', max_age=120)
(4)expires:过期时间。跟max_age是类似的,只不过这个参数需要传递一个具体的日期,比如datetime或者是符合日期格式的字符串,如果同时设置了expires和max_age,那么符合使用expires的值作为过期时间。
from datetime import datetime
from django.utils.timezone import make_aware
# 3. 设置过期时间expires,datetime类型或日期格式的字符串
# date = datetime(year=2020,month=2, day=20, hour=0, minute=0, second=0)
# 此时在浏览器中获取的时间为navie时间,可以使用make_aware转变为本时区的时间
date = make_aware(datetime(year=2020,month=2, day=20, hour=0, minute=0, second=0))
(5)path: 对域名下哪个路径有效。默认是针对域名下的所有路径都有效。
response.set_cookie('password', 'guyan', max_age=120, path='cms/')
(6)domain: 对哪个域名有效,默认情况下针对主域名下都有效,如果只要针对某个子域名才有效,那么可以设置这个属性。
(7)secure:是否是安全的,如果设置为True,那么只能在https协议下才能使用。
response.set_cookie('password', 'guyan', max_age=120, path='cms/', secure=True)
(8)httponly:默认是False,如果为True,那么在客户端不能通过Javascript进行操作。
删除cookie
通过delete_cookie即可删除cookie,实际上删除cookie就是将指定的cookie的值设置为空的字符串,然后使用将他的过期时间设置为0,也就是浏览器关闭之后就过期。
def delete_cookie(request):
response = HttpResponse('delete cookie view')
depwd = response.delete_cookie('password')
print(depwd)
<!--打印出的结果为None-->
return response
在浏览器中查看cookie信息,可以看到名称为password的内容为空的字符串,并且创建时间和到期时间是相同的,也就是立即过期,这样就达到了删除cookie的效果。
获取cookie
获取cookie可以通过request.COOKIES来获取,示例代码如下:
def my_list(request):
cookies = request.COOKIES
cookie = cookies.get('username')
print(cookie)
return HttpResponse('mylist')
最新文章
- svn-多个项目版本库和自动同步更新post-commit
- Kylin查询性能低下原因分析
- MySQL数据库基本指令(全)
- UIImageView、UISlider、UISwitch、UIStepper、UISegmentControl
- Listview之优化BaseAdapter中的getView中的contentView
- poj 1050 To the Max_dp求最大子矩阵和
- type 命令详解
- kubernetes实践之运行aspnetcore webapi微服务
- 多个vlan之间路由
- java策略设计模式
- #227 Generate Random Whole Numbers within a Range
- IEnumerable,ICollection,IList接口问题
- ueditor取消文本编辑器的自动拉伸高度、宽度。
- nginx获取uri里面的参数
- WordPress发送注册用户设置密码邮件提示:您的密码重设链接无效,请在下方请求新链接
- Windows本机搭建Redis
- vue-navigation 实现前进刷新,后退不刷新
- SQL中的split方法的使用
- JAVAWEB开发之HttpServletResponse和HttpServletRequest详解(上)(各种乱码、验证码、重定向和转发)
- 使用uliweb自动创建表单