我有一个简单的jinja2模板:
{% for test in tests %}
{{test.status}} {{test.description}}:
{{test.message}}
Details:
{% for detail in test.details %}
{{detail}}
{% endfor %}
{% endfor %}
当'test'对象的所有变量都像这里一样被定义时,哪些工作真正有效?
from jinja2 import Environment, PackageLoader
env = Environment(loader=PackageLoader('my_package', 'templates'), trim_blocks=True, lstrip_blocks=True, keep_trailing_newline=True)
template = env.get_template('template.hbs')
test_results = {
'tests': [
{
'status': 'ERROR',
'description': 'Description of test',
'message': 'Some test message what went wrong and something',
'details': [
'First error',
'Second error'
]
}
]
}
output = template.render(title=test_results['title'], tests=test_results['tests'])
那么输出看起来是这样的:
ERROR Description of test:
Some test message what went wrong and something
Details:
First error
Second error
但有时候可能 'test' 对象没有 'message' 属性,在这种情况下会出现空行:
ERROR Description of test:
Details:
First error
Second error
有可能让这个变量贯穿整行吗?当变量未定义时消失?