import jinja2
# rules={
# "name":"xxxxxxx",
# "rules":[
# {
# "alert": "z1",
# "expr": "up == 0",
# "duration": "1m",
# "enable": 1,
# "labels":{"labels1":"label1","label2":"label2"},
# "annotations":{"annotations":"annotations"}
# },
# {
# "alert": "z2",
# "expr": "up == 0",
# "duration": "1m",
# "enable": 1,
# "labels":{"label1":"label1","label2":"label2"},
# "annotations":{"annotation1":"annotation1","annotation2":"annotation2"}
# }
# ],
rules={
"instance_info":{"time":"******"},
"desc":"group DESC NEW1"
}
instance_info={
"time":"******"
}
RENDER_RULES_TEMPLATE = """groups:
- name: {{ rules.name }}
rules:
{%- for alert in rules.rules %}
- alert: {{ alert.alert }}
expr: {{ alert.expr}}
for: {{ alert.duration }}
labels:
{%- for item in alert.labels %}
{{ item }}: {{ alert.labels[item] }}
{%- endfor %}
annotations:
{%- for item in alert.annotations %}
{{ item }}: {{ alert.annotations[item] }}
{%- endfor %}
{% endfor %}
"""
f = open("templates/test.html",
encoding = "utf-8") # HTML文件默认和当前文件在同一路径下,若不在同一路径下,需要指定要发送的HTML文件的路径
mail_body = f.read()
print(str(mail_body))
result = jinja2.Template(source=mail_body).render(instance_info=instance_info,name="sdd")
with open('result.html','w') as fp:
fp.write(result)
渲染后生成result.html文件
python使用jinja2渲染yml、html
于 2021-03-25 17:03:37 首次发布