为什么变量在我的情况下是“无”?

时间:2013-10-24 15:22:30

标签: django

我的代码:

if not 'last_user_visit' in request.COOKIES:
    response.set_cookie('last_user_visit', now)
    last_visit = request.COOKIES.get('last_user_visit')
    print last_visit

为什么last_visit在我的案例中是None

2 个答案:

答案 0 :(得分:1)

因为您在响应中设置了它,并从请求中读回来。在将响应发送到客户端并且已收到下一个请求之前,请求中的版本不会更新。

答案 1 :(得分:0)

你必须先发送响应,就像Daniel建议的那样,你在响应时设置cookie然后你必须返回它。因此,从那时起,无论什么时候发出请求,它都会持有该cookie并且您可以访问它。你可以创建这样的函数:

def cookie_setter(request):
    '''Do your function task and create response object
    '''
    if not 'last_user_visit' in request.COOKIES:
        response.set_cookie('last_user_visit', now)
    return response