操作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')

最新文章

  1. svn-多个项目版本库和自动同步更新post-commit
  2. Kylin查询性能低下原因分析
  3. MySQL数据库基本指令(全)
  4. UIImageView、UISlider、UISwitch、UIStepper、UISegmentControl
  5. Listview之优化BaseAdapter中的getView中的contentView
  6. poj 1050 To the Max_dp求最大子矩阵和
  7. type 命令详解
  8. kubernetes实践之运行aspnetcore webapi微服务
  9. 多个vlan之间路由
  10. java策略设计模式
  11. #227 Generate Random Whole Numbers within a Range
  12. IEnumerable,ICollection,IList接口问题
  13. ueditor取消文本编辑器的自动拉伸高度、宽度。
  14. nginx获取uri里面的参数
  15. WordPress发送注册用户设置密码邮件提示:您的密码重设链接无效,请在下方请求新链接
  16. Windows本机搭建Redis
  17. vue-navigation 实现前进刷新,后退不刷新
  18. SQL中的split方法的使用
  19. JAVAWEB开发之HttpServletResponse和HttpServletRequest详解(上)(各种乱码、验证码、重定向和转发)
  20. 使用uliweb自动创建表单

热门文章

  1. 研发协同平台持续集成之Jenkins实践
  2. 06_TypeScript泛型
  3. 一起了解 .Net Foundation 项目 No.5
  4. MySql存储引擎:innodb myisan memory
  5. 饿了么组件--table组件自定义渲染列,同时伴有v-for和v-if情况
  6. 不会用数据可视化大屏?一招教你轻松使用数据可视化BI软件创建农业公司运营数据分析大屏
  7. kms在线激活windows和office
  8. pikachu-不安全的文件下载和上传
  9. android 华为、魅族手机无法打印 Log 日志的问题
  10. pikachu-SQL注入漏洞