问题描述
我正在使用jinja2,并且我想使用类似于调用宏的语法来调用python函数作为帮助程序. jinja2似乎旨在阻止我进行函数调用,并坚持要我通过将函数复制到模板中作为宏来重复我自己.
I am using jinja2, and I want to call a python function as a helper, using a similar syntax as if I were calling a macro. jinja2 seems intent on preventing me from making a function call, and insists I repeat myself by copying the function into a template as a macro.
有没有简单的方法可以做到这一点?而且,是否有任何方法可以导入整套python函数并使它们从jinja2中进行访问,而无需经历大量的rigamarole(例如编写扩展名)?
Is there any straightforward way to do this? And, is there any way to import a whole set of python functions and have them accessible from jinja2, without going through a whole lot of rigamarole (such as writing an extension)?
推荐答案
对于使用Flask的用户,请将其放入您的__init__.py
:
For those using Flask, put this in your __init__.py
:
def clever_function():
return u'HELLO'
app.jinja_env.globals.update(clever_function=clever_function)
,然后在模板中使用{{ clever_function() }}
这篇关于从jinja2调用python函数的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!