记一次python中使用jinja2模板渲染文本
来源:互联网 发布:游乐网软件下载 编辑:程序博客网 时间:2024/05/29 12:09
起因:
项目中需要通过web表单实现动态为prometheus配置报警规则,我负责后端,需要对数据进行校验,报警规则有一定的数据格式,但是使用format来格式化的话处理比较麻烦,于是借助了jinja模板:
import jinja2rules={"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"} }],"desc":"group DESC NEW1"}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 %}"""result = jinja2.Template(source=RENDER_RULES_TEMPLATE).render(rules=rules)with open('result.yml','w') as fp: fp.write(result)
结果展示:
MongoDB notes:
mongodb sort limit和skip用法
检索数据可以使用sort()方法来对数据进行排序,指定排序字段,并使用1或-1来指定排序方式是升序或降序。类似于SQL语句中的order by语句。
可以使用limit()方法来读取指定数量的数据,还可以使用skip()方法来跳过指定数量的数据。对分页性能上面效率非常高。
- 语法
db.COLLECTION_NAME.find().sort({KEY:1})
db.COLLECTION_NAME.find().limit(NUMBER)
db.COLLECTION_NAME.find().limit(NUMBER).skip(NUMBER)
示例:
db.col.find({},{“title”:1,_id:0}).limit(2)
第一个 {} 放 where 条件,为空表示返回集合中所有文档。
第二个 {} 指定那些列显示和不显示 (0表示不显示 1表示显示)。
想要读取从 10 条记录后 100 条记录,相当于 sql 中limit (10,100)。
db.COLLECTION_NAME.find().skip(10).limit(100)
阅读全文
1 0
- 记一次python中使用jinja2模板渲染文本
- python中模板引擎Jinja2学习
- [Webpy]在webpy中使用jinja2模板
- python jinja2配置模板
- Python 之 jinja2模板
- 使用Python写HTML 文件使用jinja2中的模板
- python模板引擎Jinja2基础
- Flask的jinja2模板中自定义过滤器的使用
- Jinja2模板(1) --基本概念,模板引擎,渲染模板
- Flask中的Jinja2模板使用
- Python学习:Flask框架和jinja2模板
- 记一次python文本处理实例
- 汇总python的模板引擎Jinja2的一些常用查询
- Python Flask Web 第四课 —— 模板引擎Jinja2
- 关于Python的web模板jinja2的简单例子
- web.py中使用Jinja2问题汇总
- 在django中使用jinja2模版引擎
- flask中jinja2设置使用全局变量
- 160个练手CrackMe-044
- 3.反向代理-负载均衡
- 在eclipse导入paramiko模块
- Unity游戏状态脚本控制思考(二)
- 大数的阶乘
- 记一次python中使用jinja2模板渲染文本
- 数据结构实验之排序六:希尔排序
- <转>URL编码
- 使用随机森林计算特征重要度
- 快速排序简单实现
- HDOJ 2013 蟠桃记
- java读取excel文件的数字,读取时间
- 安装python
- JVM内存结构及其调优(上)——Java虚拟机结构和属性