• 135.在django中操作cookie


    操作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')
    
    始于才华,忠于颜值;每件事情在成功之前,看起来都是天方夜谭。一无所有,就是无所不能。
  • 相关阅读:
    设计模式基础:类及类关系的UML表示
    SQL 经典语句
    网络存储
    jstack Dump
    Windows上模拟Linux环境的软件Cygwin
    竞争条件
    Java volatile关键字
    java原子操作
    java死锁小例子
    死锁四个必要条件
  • 原文地址:https://www.cnblogs.com/guyan-2020/p/12354654.html
Copyright © 2020-2023  润新知