jinja2:根据前一个变量的值替换变量

时间:2017-03-27 10:16:00

标签: python jinja2

我正在使用jinja2动态创建一个乳胶文档。我是jinja2及其语法的新手。我在python文件中使用这个jinja env:

latex_jinja_env = jinja2.Environment(
    block_start_string = '((*',
    block_end_string = '*))',
    variable_start_string = '(((',
    variable_end_string = ')))',
    comment_start_string = '((=',
    comment_end_string = '=))',
    loader = jinja2.FileSystemLoader(os.path.abspath('.'))
)

if __name__ == '__main__':

    template = latex_jinja_env.get_template('template.tex') # pass in the template file
    render_template = template.render(blocks = blocks, **options) # pass in all jinja vars as a big dictionary
    print render_template

在template.tex文件中我有这种情况:

((( var1 ))) ( ((( var2 ))) ) other text...

var1可以替换为带有整数的bigsmallvar2字符串。我希望var2仅在var1获得值small时才会被替换。怎么能把它翻译成jinja2?谢谢

1 个答案:

答案 0 :(得分:0)

只是一个简单的if语句(使用latex_jinja_env var中定义的语法)完成工作:

((( var1 ))) 
((* if block13_var1 == "small" *)) 
( ((( var2 ))) )
((* endif *))