将strftime()传递到Google应用引擎和jinja2

时间:2013-02-23 17:01:39

标签: python html5 google-app-engine jinja2

我有一个Google App Engine Python脚本试图将变量“time”作为strftime()调用传递。我有jinja2设置为读取html文件,其中{{time}}作为变量目的地

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问题吗?我显然不确定如何跟进并解决这个问题。谢谢或任何好的批评建议。

我想要的只是将一个formattable时间函数呈现给字符串,以便我可以在GAE脚本中使用它。

1 个答案:

答案 0 :(得分:2)

您只需调用 get_time()方法:

time = self.get_time()

通过调用该方法,您所做的就是存储对该方法的引用,然后Jinja2将该方法的str()结果包含在您的模板输出中:< / p>

>>> 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'