Django操作cookie

浏览器清空cookie快捷键:ctrl+shift+deletecookie中包含csrf认证信息

获取Cookie

request.COOKIES['key']

request.COOKIES.get['key']

request.get_signed_cookie(key, default=RAISE_ERROR, salt='', max_age=None)(签名cookie,在设置时进行了签名加密)

参数:

default: 默认值

salt: 加密盐

max_age: 后台控制过期时间

 

设置Cookie

rep = HttpResponse(...)

rep render(request, ...)

rep redirect( ...)

 

rep.set_cookie(key,value,...)

rep.set_signed_cookie(key,value,salt='加密盐', max_age=None, ...)(签名cookie)

 

return rep

参数:

key,

value='',

max_age=None, 超时时间

expires=None, 超时时间(IE requires expires, so set it if hasn't been already.)

path='/', Cookie生效的路径,/ 表示根路径,特殊的:根路径的cookie可以被任何url的页面访问

domain=None, Cookie生效的域名

secure=False, https传输

httponly=False 只能http协议传输,无法被JavaScript获取(不是绝对,底层抓包可以获取到也可以被覆盖)

 

删除Cookie

def logout(request):

    rep = redirect("/login/")

    rep.delete_cookie("user")  # 删除用户浏览器上之前设置的usercookie

    return rep

 

 

cookie设置参数

class HttpResponseBase:

 

        def set_cookie(self, key,       

                                         value='',             

                                      max_age=None,        超长时间 ,有效事件,max_age=20意思是这个cookie20秒后就消失了,默认时长是2,这个是以秒为单位的

                                                                                     cookie需要延续的时间(以秒为单位)

                                                                                     如果参数是\ None`` ,这个cookie会延续到浏览器关闭为止。

 

                                     expires=None,           超长时间,值是一个datetime类型的时间日期对象,到这个日期就失效的意思,用的不多

                                                                                         expires默认None ,cookie失效的实际日期/时间。

   

 

                                     path='/',               Cookie生效的路径,就是访问哪个路径可以得到cookie'/'是所有路径都能获得cookie

                                                                                        浏览器只会把cookie回传给带有该路径的页面,这样可以避免将  cookie传给站点中的其他的应用。

                                                                                         / 表示根路径,特殊的:根路径的cookie可以被任何url的页面访问

        

                               domain=None,         Cookie生效的域名

                                               

                                                                你可用这个参数来构造一个跨站cookie

                                                                如, domain=".example.com"

                                                                所构造的cookie对下面这些站点都是可读的:www.example.com www2.example.com  .other.sub.domain.example.com

                                                                如果该参数设置为 None cookie只能由设置它的站点读取。

 

                             secure=False,           如果设置为 True ,浏览器将通过HTTPS来回传cookie

                              httponly=False        只能http协议传输,无法被JavaScript获取(不是绝对,底层抓包可以获取到也可以被覆盖)

        ): pass

posted @ 2019-07-21 19:57  笑得好美  阅读(2577)  评论(0编辑  收藏  举报