0

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

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 脚本中使用它。

4

1 回答 1

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'
于 2013-02-23T17:03:17.817 回答