我有点新的Jinja2和,我想知道如果有一种方法,使模板生成,同时,打印到控制台或重定向一些输出某种流?
由于Jinja2的模板可能有内部逻辑,我认为这将是有时候需要记录一些信息在某种日志文件的,或者至少让打印到控制台。
这是可能的,或者我只是在说垃圾?
我想你可以使用过滤器(http://jinja.pocoo.org/docs/api/#custom-filters)或扩展(http://jinja.pocoo.org/docs/extensions/#adding-extensions)实现它。我们的想法是只打印器或扩展直安慰。
未经测试,但过滤器应该是这样的:
def debug(text):
print text
return ''
environment.filters['debug']=debug
用作:
...<p>Hello world!</p> {{"debug text!"|debug}}...
请记住,以消除生产代码调试!
一个类似的但略微不同的方法使用上下文处理器:
在python /烧瓶中:
@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") }}
我会用一个id集HTML元素的隐藏元素的属性。然后使用JavaScript作为这样
<p id="hidden-p">{{a_variable}}</p>
<script>
var hiddenP = document.getElementById("hidden-p").innerHTML;
console.log(hiddenP);
</script>