django登陆登出login和logout

login和logout函数

  • 首先这两个都是对session操作的,也就是操作redis,所以返回的要么是空,要么成功,不会出现异常
    • login的用法:需要传入request和user对象,貌似不会返回。。
      在这里插入图片描述
      django登陆登出login和logout_第1张图片
      在这里插入图片描述

    • logout的用法:只需要传入一个request对象就行,就会把当前用户的session清除
      在这里插入图片描述

    • cookie的设置+ 清除<====>必须先获取response对象
      --------------------->response对象一般为http对象/render()/redirect()等

      • 设置cookie:往cookie中丢入字段,参数是key+value+时效
        response.set_cookie(‘username’, user.username, max_age=3600 * 24 * 15)
      • 清除cookie:删除cookie中的字段,参数是key
        response.delete_cookie(‘username’)
    • 额外扩充:

      • delete_cookie函数为什么必须用response对象调用?
        第一个参数是self,代表是对象方法,归属于响应类,所以可以httpresponse这种类实例对象调用,也可以render/redirect这种调用
        在这里插入图片描述
      • 怎么实现的?
        ------>其实就是调用set_cookie函数,添加一个有效期(到1970年。。)
        django登陆登出login和logout_第2张图片

登陆/退出:

  • 登陆做法:设置session和cookie
    django登陆登出login和logout_第3张图片
    在这里插入图片描述

  • 退出登陆做法:清除session,清除cookie
    django登陆登出login和logout_第4张图片

你可能感兴趣的:(django)