我有一个看起来像这样的块:
{% if grains['function'] == 'production' %}
{% set conf_src = "prod.yml.ninja" %}
{% elif grains['function'] == 'staging'] %}
{% set conf_src = "staging.yml.ninja" %}
{% elif grains['function'] == 'dev'] %}
{% set conf_src = "dev.yml.ninja" %}
{% endif %}
有没有办法做类似
的事情{%
if grains['function'] == 'production'
set conf_src = "prod.yml.ninja"
elif grains['function'] == 'staging'
set conf_src = "staging.yml.ninja"
elif grains['function'] == 'dev'
set conf_src = "dev.yml.ninja"
endif
%}
所以我可以打开块一次吗?
答案 0 :(得分:1)
您可以定义查找词典,并且只包含非平凡的案例:
html = '''
{% set lookup = dict(production='prod') %}
{% set conf_src = lookup.get(grains['function'], grains['function'])
+ '.yml.ninja' %}
'''
此处,由于未修改dev
和staging
,您可以使用dict.get
后退参数。