2017-07-14 35 views
0

此代碼計算我們訪問該頁面的時間,直到瀏覽器關閉爲止,使用cookie。我沒有得到。請幫助GAE使用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) 
+0

你的電話set_cookie在哪裏? –

+0

其從去年 – Hiro

回答

1

而不是僅僅給你答案發生的事情,我會幫你的身影瞭解如何得到它。

self.requestself.responseMainPage類的屬性。要弄清楚這兩件事正在做什麼,你需要找出它們的定義。

MainPage類是Handler類的子類。您不會顯示Handler類的定義,但在您的代碼中某處您會發現它是webapp2.RequestHandler的一個子類。

要查找的兩行代碼是幹什麼的,你應該去閱讀聯機文檔webapp2

+0

怎麼樣cookies.get和headers.add_header,什麼是訪問 – Hiro

+0

你會發現,在文檔的webapp2的第2行。 –

0

現在我明白了這兩條線:

visits = self.request.cookies.get('visits','0') 
  • self.request獲取=從瀏覽器請求
    • self.request.cookies =請求餅乾[基本上是一個字典]從瀏覽器
    • self.request.cookies.get('visits')=尋找關鍵是訪問的cookie
    • self.request.cookies.get(「visits」,0)= if k安永沒有發現使這個密鑰值0,並返回
    • 所以現在訪問的LHS等於0,因爲現在餅乾不含visits cookie的

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

  • self.response的=從服務器發送到瀏覽器
    • self.response.headers.add_header('Set-Cookie','visits =%s'%visits)=將cookie添加到標題中, n標題,並設置訪問中的cookie