Django——cookie保持登录

普通登录时,无法保持登录的状态,每一次请求时都需要重新登录。

而在登录时,生成cookie并保存在浏览器中,这样每次登录就会携带登录信息,就可以保持登录状态了。

 

操作cookie语法:

# (1) 设置cookie:
res = HttpResponse(...) 或 rep = render(request, ...) 或 rep = redirect() 
res.set_cookie(key,value,max_age...)
res.set_signed_cookie(key,value,salt='加密盐',...) 

# (2) 获取cookie:
request.COOKIES  
# (3) 删除cookie response.delete_cookie("cookie_key",path="/",domain=name)

  

例子:

设置cookie:

def login(request):
  login_success=1
  if login_success:
    # 获取响应体(render或redirect也可以,都是继承的HttpResponse)
    response=HttpResponse("登录成功")
    # 在响应体设置cookie
    response.set_cookie("is_login", True)
    return response
  else:
    return HttpResponse("登录失败")

  

读取cookie:

def index(request):
  cookies = request.COOKIES
  # cookies.get("k","")获取不到默认为""
  is_login = cookies.get("is_login")
  if is_login:
    #已登录
  else:
    #跳转到登录页面

  

删除cookie:

response.delete_cookie("cookie_key",path="/",domain=name)

  

posted @ 2021-09-02 18:28  映辉  阅读(208)  评论(0)    收藏  举报