How to get all variables inside a jinja templates?

问题描述 投票:0回答:1

我想在 php 中写一个像 var_dump() 这样的方法来打印出所有变量用于调试目的。
如何从我的方法中访问所有模板变量?
{{转储()}}

def Dump() -> str:
    Res = []
    for var in get_jinja_variables(): # ???
        print(var)
        Res.append(str(var))
    return '<br>\n'.join(Res)

Tpl = Env.get_template(Route, globals = {'Dump': Dump})
Tpl.render({'var1': 'hello', 'var2': 'world'})
templates variables jinja2 var-dump
1个回答
0
投票

也许有更好的方法,但我解决了。
{{转储(自我)}}

def Dump(self, aVal: bool = True) -> str:
    Res = []
    Values = self._TemplateReference__context.parent
    for Key, Val in Values.items():
        if (isinstance(Val, (str, int, float, dict, list))):
            Data = f'{Key} = {Val}' if aVal else Key
            print(Data)
            Res.append(Data)
    return '<br>\n'.join(Res)
© www.soinside.com 2019 - 2024. All rights reserved.