在Flask模板中打印变量

4 投票
2 回答
18731 浏览
提问于 2025-04-18 12:50

我在代码里有一个变量,它藏得很深在一些老旧的代码里。与其花一整天去找这个变量,不如直接在jinja模板里把它打印出来。这样可以吗?

我试过用 {% print var %},但是好像没有任何效果。

2 个回答

2

你需要使用上下文处理器。

下面是一个可以放在你的 .py 文件里的例子:

@app.context_processor
def get_legacy_var():
    return dict(get_legacy_var=your_get_legacy_var_function())

然后在你的模板中:

{{ get_legacy_var }}

这样做会在生成模板的时候调用 Python,获取你变量的值,并把它返回到模板中。

10

输出变量的写法是 {{var}},而 {% %} 是用来写代码块和其他指令的。不过听起来像是这个变量没有传递到模板里。你可以检查一下这个问题。

如果你在调试的时候遇到很多问题,可以试试 Flask-DebugToolbar,它会把所有传递给模板的变量都打印出来,这样你就不需要像这样到处加打印语句了。这个工具很有用。

撰写回答