我有一个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脚本中使用它。
答案 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'