《Ansible语法篇:jinja2的for和if的使用》

本文介绍了Jinja2模板中的for循环用法,包括循环变量、特殊属性以及如何在循环中生成序列。同时讲解了if条件的基本语法,并通过实例展示了条件判断在模板中的应用。此外,还提到了Jinja2中与Python字符串格式化相关的知识。

更多的测试器可以查看Jinja2的官方文档

一、jinja2 for循环

在jinja2中的for循环,跟python中的for循环基本上是一模一样的。也是for…in…的形式。并且也可以遍历所有的序列以及迭代器。但是唯一不同的是,jinja2中的for循环没有break和continue语句。

但是在Jinja2模板中,没有continue和break语句,所以我们不能使用他们来控制我们的循环。但是Jinja2模板给我们提供了for循环中的其他一些变量。

变量 作用
loop.index0 当前迭代对象的索引,从0开始
loop.index 当前迭代对象的索引,从1开始
loop.revindex 当前循环的反向索引,比如序列的长度为5,那么第一次循环这个值就为5,接下来每次减一
lopp.revindex0 当前循环的反向索引,从0开始,所以第一次的值为loop.length-1
loop.first 是否为第一次迭代,反回True或False
loop.last 是否为最后一次迭代,返回True或False
loop.length 序列的长度
loop.previtem 当前循环值得上一个值,如果为序列中的第一个值,那么上一个值就为空
loop.nextitem 当前循环值得下一个值,如果为序列中的最后一个值,那么下一个值就为空
loop.cycle() 辅助循环,看下面的例子

for循环基本语法如下:

{
   
    % for 迭代变量 in 可迭代对象 % }
{
   
   {
   
    迭代变量 }}
{
   
    % endfor % }

案例一:为远程主机生成服务器列表,该列表从192.168.37.201 web01.magedu开始,到192.168.37.211 web11.magedu结束。在该案例中,手工一条条添加10条记录明显不是我们期望的结果,这里需要用For循环通过模板批量生成对应的配置文件。我们具体看下对应的Jinja2文件该如何编写。

{
   
   % for id in range(201,211) %}
192.168.37.{
   
   {
   
   
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

东城绝神

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值