0

strftime()変数「time」を呼び出しとして渡そうとしているGoogleAppEngineのPythonスクリプトがあります。{{time}}変数の宛先としてhtmlファイルを読み取るように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スクリプトで使用できるようにすることです。

4

1 に答える 1

2

あなたがしなければならないのはメソッドを呼び出すget_time()ことです:

time = self.get_time()

メソッドを呼び出さないstr()ことで、メソッドへの参照を保存するだけで、Jinja2はそのメソッドの結果を取得して、テンプレート出力に含めます。

>>> 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 に答える