标签:语法 Word 迭代 运算符 循环 jinja2 模板 Jinja2 loop
Word模板中的语法
Word的基本语法(与jinja2相似)
基本语法
- 变量取值 {{ }}
- 条件控制{% %}
- 注释{# #}
过滤器
- title: 把值中每个单词的首字母都转换成大写
- trim: 把值的首尾空格去掉
- join: 拼接多个值为字符串
- round: 默认对数字进行四舍五入,也可以用参数进行控制
- capitialize: 把值的首字母转换成大写,其他子母转换为小写
- lower: 把值转换成小写形式
- upper: 把值转换成大写形式
{{ 'abc' | captialize}}
# Abc
{{ 'abc' | upper }}
# ABC
{{ 'hello world' | title }}
# Hello World
{{ "hello world" | replace('world','daxin') | upper }}
# HELLO DAXIN
变量可以通过“过滤器”进行修改,过滤器可以理解为内置函数和字符串处理函数
for循环
- 举例如下
# 迭代数组 {% for item in [1,2,3] %} 逻辑循环 {{ item }} {% endfor %} # 1 2 3 # 迭代字典 {% for key, value in my_dict.iteritems() %} {{ key }} {{ value}} {% endfor %}
变量 内容 loop.index 循环迭代计数(从1开始) loop.index0 循环迭代计数(从0开始) loop.revindex 循环迭代倒序计数(从len开始,到1结束) loop.revindex0 循环迭代倒序计数(从len-1开始,到0结束) loop.first 是否为循环的第一个元素 loop.last 是否为循环的最后一个元素 loop.length 循环序列中元素的个数 loop.cycle 在给定的序列中轮循,如上例在”odd”和”even”两个值间轮循 loop.depth 当前循环在递归中的层级(从1开始) loop.depth0 当前循环在递归中的层级(从0开始) if 条件
- 举例如下
{% if ... %} 逻辑1 {% elif ... %} 逻辑2 {% else %} 逻辑3 {% endif %}
比较运算符
- 举例
运算符 含义 == 等于 != 不等于 < 小于 > 大于 <= 小于等于 >= 大于等于
布尔运算符
- 举例
运算符 含义 and 与 or 或 not 非
表格
- for循环中垂直合并单元格 {% vm %}
- for循环中水平合并单元格 {% hm %}
扩展
- 为了管理段落、表行、表列、run,必须使用特殊的语法。(区别于jinja2)
- {%p jinja2_tag %} for paragraphs
- {%tr jinja2_tag %} for table rows
- {%tc jinja2_tag %} for table columns
- {%r jinja2_tag %} for runs
不要使用2次{%p、 {%tr、{%tc 、{%r在同一段落中,行、列或run
不要使用这个 {%p if display_paragraph %}Here is my paragraph {%p endif %}
- 手动剥离模板中的空白,在块(比如一个 for 标签、一段注释或变 量表达式)的开始或结束放置一个减号( - )
{% for item in seq -%} {{ item }} {%- endfor %}
具体语法详见jinja2关方文档
标签:语法,Word,迭代,运算符,循环,jinja2,模板,Jinja2,loop 来源: https://blog.csdn.net/qq_43594278/article/details/115284165
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。