2013-02-23 43 views
0

我有一個Google App Engine Python腳本,試圖通過變量「time」作爲strftime()調用。我有Jinja2的設念與{{time}} HTML文件中它作爲變量目的地將strftime()傳遞給Google應用引擎和jinja2

class MainPage(BlogHandler): 

    time = '' 

    def get_time(you): 
     return strftime('%U %A',gmtime()) 

    def get(self): 
     time = self.get_time 
     self.render('front.html',time = time) 

當我渲染/整個事情寫出來成一個簡單的div標籤,我得到的HTML

渲染的對象存儲定位器
<bound method MainPage.get_time of <main.MainPage object at 0x1030f0610>> 

顯然它不處理這個作爲一個字符串。我是否使用錯誤的時間函數,這是GAE問題嗎?這是Jinja2的問題嗎?這是一個python問題嗎?我顯然不知道如何跟進並解決此問題。感謝或任何好的重要建議。

所有我想要的是呈現格式化時間函數的字符串,所以我可以在GAE腳本中使用它。

回答

2

所有你需要做的就是呼叫get_time()方法:

time = self.get_time() 

通過調用該方法,你要做的就是存儲對方法的引用,並使用Jinja2然後取str()結果該方法的,包括它在你的模板輸出:

>>> from time import strftime, gmtime 
>>> class MainPage(): 
...  def get_time(self): 
...   return strftime('%U %A',gmtime()) 
... 
>>> mp = MainPage() 
>>> mp.get_time 
<bound method MainPage.get_time of <__main__.MainPage instance at 0x1031c7320>> 
>>> mp.get_time() 
'07 Saturday' 
+0

能得到及時格式化爲「日,週六23日」 – underarock 2013-02-23 17:06:43

+1

@underarock:當然,LO在[documentation](http://docs.python.org/2/library/time.html#time.strftime)中查找strftime()的參數。請注意'rd'必須由手工生成。 – 2013-02-23 17:07:53

+0

哦,你的意思是添加()。這是非常明顯的,雖然我昨天試了這個,它崩潰了GAE服務器。不是今天......謝謝! – underarock 2013-02-23 17:09:00