ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

Word模板中的语法(Jinja2)

2021-03-28 18:02:11  阅读:570  来源: 互联网

标签:语法 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. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有