jinja2如何将内容输出到控制台或日志中记录

24

我对Jinja2比较陌生,想知道是否有一种方法可以使生成的模板打印到控制台或将某些输出重定向到某种流?

Jinja2模板可能包含逻辑,因此有时记录一些信息到某种日志文件或至少打印到控制台会很有用。

这可行吗,还是我在胡说八道?

3个回答

22

哦,太酷了!我知道一定有办法实现它。现在,我遇到了一个问题。我不能把文字直接发送给自定义滤镜,但可以通过{% set text="debug text!" %}标签来实现,然后用{{ text | debug }}。我不知道是否可以直接发送文字到滤镜中... :-o - Javier Novoa C.
好的,部分解决了(或许这就是正确的方式),使用“()”来包含我需要打印的所有字符串。例如{{("debug text!") | debug}}。更准确地说:{{("debug text! value: "~valueINeedToLog) | debug}}。 - Javier Novoa C.

16

使用上下文处理器的一种类似但略有不同的方法:

在 Python/Flask 中:

@app.context_processor
def utility_functions():
    def print_in_console(message):
        print str(message)

    return dict(mdebug=print_in_console)
在jinja2中,您可以在任何地方按如下方式使用它:
{{ mdebug("any text or variable") }}

-1
我会创建一个带有id设置和hidden属性的HTML元素。然后使用JavaScript,如下所示:
<p id="hidden-p">{{a_variable}}</p>
<script>
    var hiddenP = document.getElementById("hidden-p").innerHTML;
    console.log(hiddenP);
</script>

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接