我已經設法通過使用自定義過濾器從jinja2調用python函數,但我似乎只能用一個或多個參數調用函數。在下面,我必須傳遞一個垃圾參數才能將ctest作爲一個函數而不是一個變量。如何調用jinja2模板中沒有參數的python函數
如果我打電話給{{ ctest() }}
,它也不起作用。
是否有不同的方式強制這是一個函數調用,或者我應該使用不同的方法?
代碼:
def ctest(stuff):
return "yeah!"
template_env = jinja2.Environment (loader = jinja2.FileSystemLoader(template_file_root))
#custom filters
template_env.filters['ctest'] = ctest
模板:
Working? {{ junk|ctest }}
輸出:
working? yeah!
可能重複[調用從Jinja2的一個Python函數(http://stackoverflow.com/questions/6036082/call-a-python-function-from-jinja2) – geoffspear 2012-07-25 19:41:22
我在發佈之前查看了這個問題,但並未解釋如何在不帶參數的模板中調用過濾器。它只是解釋瞭如何達到我已經在的程度。 – chrisst 2012-07-25 21:00:09
看到第二個答案:'{{clever_function()}}' – geoffspear 2012-07-25 22:40:04