0Pricing
DevOps Bootcamp · 课时

模板中的循环与 if 块

生成重复的配置部分

模板中的循环与 if 块 是 CoddyKit 上的免费 DevOps Bootcamp 课时。 这是第 3 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 DevOps Bootcamp 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 DevOps Bootcamp 课程共包含 4 节课。

逻辑位于 {% %} 中

除了输出值之外,Jinja2 还会在 {% %} 标签中运行控制逻辑。这就是一个模板能够生成多行内容的方式。🔁

基本的 for 循环

使用 for 循环遍历列表并重复生成多行内容。每个列表项都会生成另一段渲染后的文本。

{% for host in backends %}
server {{ host }};
{% endfor %}

始终关闭代码块

每个开始标签都需要对应的结束标签:endfor 用于结束循环,就像 endif 用于结束条件一样。忘记关闭会导致渲染失败。

遍历字典

使用 .items() 遍历字典中的键值对,捕获每个键和值,以生成结构化配置。

{% for key, val in settings.items() %}
{{ key }} = {{ val }}
{% endfor %}

loop 变量

在循环内部,Jinja2 会提供 loop.index 表示当前计数,并提供 loop.first 或 loop.last 这类实用的布尔值。

{% for s in servers %}
server{{ loop.index }} {{ s }};
{% endfor %}

简单的 if 代码块

if 代码块仅在条件为真时渲染其内容,因此可选配置只会在应当出现时出现。

{% if enable_ssl %}
ssl on;
{% endif %}

if、elif 和 else

使用 elif 和最后的 else 串联多个选择。和 Python 一样,只有一个分支会被渲染。

{% if env == 'prod' %}
level = warn
{% else %}
level = debug
{% endif %}

循环中的条件

可以在 for 中嵌套 if,仅渲染符合条件的项目,例如跳过服务器池中已禁用的服务器。

{% for h in hosts %}
{% if h.enabled %}
server {{ h.ip }};
{% endif %}
{% endfor %}

空白控制

循环可能会留下空行。使用类似 {%- -%} 的短横线可以裁剪周围的空白,使输出整洁。

{%- for h in hosts -%}
{{ h }}
{%- endfor -%}

for 循环的 else

for 可以包含一个 else,仅在列表为空时运行,非常适合生成合理的备用行。

{% for h in backends %}
server {{ h }};
{% else %}
# no backends defined
{% endfor %}

输出标签与逻辑标签

请区分它们:{{ }} 输出一个值,而 {% %} 控制流程,但本身不会输出任何内容。

快速检查

您希望为列表中的每台主机重复生成一行配置。哪个标签会开始这个循环?

回顾

现在您可以使用 for 循环、使用 if 分支、读取 loop.index、嵌套它们并裁剪空白。一个模板现在就能生成动态配置。✨

常见问题解答

「模板中的循环与 if 块」课时是免费的吗?

是的 — 「模板中的循环与 if 块」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 DevOps Bootcamp 课程的其余内容,请升级到 CoddyKit PRO。 DevOps Bootcamp 课程共包含 4 节课。

「模板中的循环与 if 块」这节课中我会学到什么?

生成重复的配置部分 你通过在浏览器中直接运行的动手代码来练习 DevOps Bootcamp,全天候 AI 导师会在你学习这节课的过程中回答你的问题。

学习 DevOps Bootcamp 需要有经验吗?

无需任何先前经验。CoddyKit 上的 DevOps Bootcamp 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 3 节课,共 4 节。

「模板中的循环与 if 块」课时需要多长时间?

大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。

我能在这节 DevOps Bootcamp 课中编写并运行代码吗?

能。每节 DevOps Bootcamp 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。

此课程中的所有课时

  1. template 模块与 .j2 文件
  2. Jinja2 中的变量与表达式
  3. 模板中的循环与 if 块
  4. 过滤器:default、join 与 upper
← 返回 DevOps Bootcamp