GAE使用cookie计算访客

时间:2017-07-14 12:14:21

标签: google-app-engine cookies google-app-engine-python

此代码计算我们访问该页面的时间,直到浏览器关闭,使用Cookie。我没有得到。请帮忙

class MainPage(Handler):
    def get(self):
        self.response.headers['Content-Type'] = 'text/plain'
        visits = self.request.cookies.get('visits','0')
        if visits.isdigit():
            visits = int(visits) + 1
        else:
            visits= 0  

        self.response.headers.add_header('Set-Cookie', 'visits=%s' %visits)
        self.write("you've been here %s times" %visits)

我只是想知道这两行中发生了什么

visits = self.request.cookies.get('visits','0')

self.response.headers.add_header('Set-Cookie', 'visits=%s' %visits)

2 个答案:

答案 0 :(得分:1)

我不会只是给你答案,而是帮助你弄明白如何获得答案。

self.requestself.responseMainPage类的属性。要弄清楚这两件事在做什么,你需要找出它们的定义。

MainPage类是Handler类的子类。您没有显示Handler类的定义,但在代码中的某处,您会发现它是webapp2.RequestHandler的子类。

要查找代码中的两行代码,您应该阅读webapp2的在线文档。

答案 1 :(得分:0)

现在我理解这两行:

visits = self.request.cookies.get('visits','0')
  • self.request =从浏览器请求
    • self.request.cookies =从浏览器
    • 请求cookies [基本上是字典]
    • self.request.cookies.get('访问')=寻找关键是访问的Cookie
    • self.request.cookies.get("访问",0)=如果未找到密钥,则将此键值设为0并返回
    • 所以现在LHS中的访问量等于0,因为现在cookie不包含访问cookie

self.response.headers.add_header('Set-Cookie', 'visits=%s' %visits)

  • self.response =从服务器发送到浏览器
    • self.response.headers.add_header(' Set-Cookie',' visits =%s'%访问次数)=将Cookie添加到标头中,因为它在标头中定义,并设置访问cookie