Teng's blog Teng's blog
首页
Java
H5前端
GitHub (opens new window)
首页
Java
H5前端
GitHub (opens new window)
  • 背景介绍
  • 安装
  • 配置说明
  • 基础命令
  • 常用模块
  • Playbook

    • 简单介绍
    • yaml语法
    • hosts
    • task
    • 运行playbook
    • handlers
    • tags
    • variables
    • template
    • when条件判断
    • with_items迭代
    • roles
    • 附:jinja2语法
      • 字面量
      • 算术运算
      • 比较操作符
      • 逻辑运算符
      • 列表
      • 元组
      • 字典
  • Tool-Ansible
  • Playbook
Shetengteng
2022-05-22

附:jinja2语法

# 字面量

  • 表达式最简单的形式就是字面量
    • 字面量表示诸如字符串和数值的 Python对象。如“Hello World”
  • 双引号或单引号中间的一切都是字符串
  • 无论何时你需要在模板中使用一个字符串(比如函数调用、过滤器或只是包含或继承一个模板的参数)
    • 如4242.23
  • 数值可以为整数和浮点数
    • 如果有小数点,则为浮点数,否则为整数
    • 在Python 里, 42 和 42.0 是不一样的

# 算术运算

Jinja 允许用计算值。这在模板中很少用到,但为了完整性允许其存在,支持如下运算符

+
  把两个对象加到一起。
  通常对象是数字,但是如果两者是字符串或列表,可用这种方式来衔接它们
  无论如何这不是首选的连接字符串的方式!连接字符串见 ~ 运算符
  {{ 1 + 1 }} 等于 2
-
  用第一个数减去第二个数
  {{ 3 - 2 }} 等于 1
/
  对两个数做除法
  返回值会是一个浮点数
  {{ 1 / 2 }} 等于 {{ 0.5 }}
//
  对两个数做除法
  返回整数商
  {{ 20 // 7 }} 等于 2
%
  计算整数除法的余数
  {{ 11 % 7 }} 等于 4
*
  用右边的数乘左边的操作数
  {{ 2 * 2 }} 会返回 4 
  可用于重复一个字符串多次
  {{ ‘=’ * 80 }} 会打印 80 个等号的横条
**
  取左操作数的右操作数次幂
  {{ 2**3 }} 会返回 8
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27

# 比较操作符

  • ==
    • 比较两个对象是否相等
  • !=
    • 比较两个对象是否不等
  • >
    • 如果左边大于右边,返回 true
  • >=
    • 如果左边大于等于右边,返回 true
  • <
    • 如果左边小于右边,返回 true
  • <=
    • 如果左边小于等于右边,返回 true

# 逻辑运算符

对于 if 语句,在 for 过滤或 if 表达式中,它可以用于联合多个表达式

  • and
    • 如果左操作数和右操作数同为真,返回 true
  • or
    • 如果左操作数和右操作数有一个为真,返回 true
  • not
    • 对一个表达式取反
  • (expr)
    • 表达式组

# 列表

  • ['list', 'of', 'objects']
  • 一对中括号括起来的东西是一个列表
  • 列表用于存储和迭代序列化的数据

示例:在 for循环中用列表和元组创建一个链接的列表

<ul>
{% for href, caption in [('index.html', 'Index'), ('about.html', 'About'), ('downloads.html',
'Downloads')] %}
<li><a href="{{ href }}">{{ caption }}</a></li>
{% endfor %}
</ul>
1
2
3
4
5
6

# 元组

元组通常用于表示两个或更多元素的项

  • ('tuple', 'of', 'values')
  • 元组与列表类似,只是不能修改元组
  • 如果元组中只有一个项,需要以逗号结尾它

# 字典

Python 中的字典是一种关联键和值的结构

  • {'dict': 'of', 'key': 'and', 'value': 'pairs'}
  • 键必须是唯一的,并且键必须只有一个值
  • 字典在模板中很少使用,罕用于诸如 xmlattr() 过滤器之类
true / false:
true 永远是 true ,而 false 始终是 false
1
2
Last Updated: 2022/05/22, 12:42:00
roles

← roles

Theme by Vdoing | Copyright © 2021-2022 Shetengteng | MIT License
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式