jinja2实用记录

简介: 【10月更文挑战第5天】 jinja2是ansible使用的默认配置格式,很多时候使用一些特殊的文件的处理,或者特殊的字符处理时,需要一些冷门的用法,记录以备方便翻阅。
变量赋值
{% set name="123" %}
{% with name="456" %}
{% endwith %}
for使用

使用内置常量,定义for循环范围,注意:不可使用continue和break来控制循环

loop.index 当前迭代的索引(从1开始)
loop.index0 当前迭代的索引(从0开始)
loop.first 是否是第一次迭代,返回True\/False
loop.last 是否是最后一次迭代,返回True\/False
loop.length 序列的长度
{% for i in list %}
{% if loop.first %}
{
  { arrvied }}
{% endif %}
{% endfor %}
运算符
  • +号运算符:可以完成数字相加,字符串相加,列表相加。但是并不推荐使用+运算符来操作字符串,字符串相加应该使用~运算符。
  • -号运算符:只能针对两个数字相减。
  • /号运算符:对两个数进行相除。
  • %号运算符:取余运算。
  • *号运算符:乘号运算符,并且可以对字符进行相乘。
  • **号运算符:次幂运算符,比如2**3=8。
  • in操作符:跟python中的in一样使用,比如{ {1 in [1,2,3]}}返回true
  • ~号运算符:拼接多个字符串,比如{ {"Hello" ~ "World"}}将返回HelloWorld
列表
first:取第一个元素
<p>{
  { [1,2,3,4,5,6] | first }}</p>

last:取最后一个元素
<p>{
  { [1,2,3,4,5,6] | last }}</p>

length:获取列表长度
<p>{
  { [1,2,3,4,5,6] | length }}</p>

sum:列表求和
<p>{
  { [1,2,3,4,5,6] | sum }}</p>

sort:列表排序
<p>{
  { [6,2,3,1,5,4] | sort }}</p>
TEST判断
  • callable(object) 判断变量是否对象
  • defined(value) 变量是否被定义
  • divisibleby(value, num) 检查变量是否被整除
  • lower(value) 判断变量是否是小写
  • none(value) 变量为none返回true
  • number(value) 判断变量是否为数字
  • string(value) 判断变量是否为字符串
  • upper(value) 变量是否是大写
{% if user.age is equalto(42) %}
Ha, you are 42!
{% endif %}
相关文章
|
6月前
|
前端开发 JavaScript 数据库
python Django教程 之模板渲染、循环、条件判断、常用的标签、过滤器
python Django教程 之模板渲染、循环、条件判断、常用的标签、过滤器
|
9月前
|
Python
python web框架fastapi模板渲染--Jinja2使用技巧总结
python web框架fastapi模板渲染--Jinja2使用技巧总结
439 2
|
9月前
egg.js 24.14sequelize模型-修改和限制字段
egg.js 24.14sequelize模型-修改和限制字段
57 0
egg.js 24.14sequelize模型-修改和限制字段
|
前端开发 JavaScript 数据处理
Flask之jinja2模板(一)
Flask之jinja2模板(一)
|
Python
【jinja2】flask和jinja2配合使用
【jinja2】flask和jinja2配合使用
155 0
|
前端开发 JavaScript Python
Flask之jinja2模板(三)
Flask之jinja2模板(三)
|
索引 Python
Flask之jinja2模板(二)
Flask之jinja2模板(二)
Jinja2 中常用的过滤器
Jinja2 是 Python 中流行的模板引擎之一,具有可扩展性和灵活性。
Jinja2渲染模板字符串
Jinja2渲染模板字符串
74 0
|
Python
Flask(8)- jinja2 模板入门(下)
Flask(8)- jinja2 模板入门(下)
178 0
Flask(8)- jinja2 模板入门(下)