Jinja2常用模板语言(条件判断if,循环遍历for,过滤器)
python开发前后端不分离web项目的时候,前端通常使用jinja2模板语言。现在介绍一下jinja2模板语言的基本语法。
普通变量
变量表示
格式:{{ 变量名 }}
@app.route('/strtest')
def test():str1 = 'asd'return render_template('temp1.html', str1=str1)
<body><h1>flask</h1><p>{{ str1 }}</p>
</body>
循环控制
for循环
格式
{% for item in list %}list不空是执行{% else %}list为空时执行的默认语句块{% endfor %}
测试:
@app.route('/test')
def test():list1 = []return render_template('temp1.html', list1=list1)
{% for item in list1 %}{{ item }}{% else %}{{ 'aaaaaaaaa' }}{% endfor %}
@app.route('/test')
def test():list1 = [1,2,3]return render_template('temp1.html', list1=list1)
条件控制
if条件判断
格式:
{% if 条件1 %}语句块1{% elif 条件2 %}语句块2{% else %}不符合所有条件{% endif %}
测试
@app.route('/test')
def test():list1 = ['sadsds', 'sadasdada', 'ssdsdsdfgg', 'sdsa', 's']return render_template('temp1.html', list1=list1)
<p>{% for item in list1 %}{% if item|length > 8 %}{{ item }} <br>{% elif item|length < 6 %}{{ 'wwwwww' }} <br>{% else %}{{ 'qqqqqq' }} <br>{% endif %}{% endfor %}</p>
过滤器
过滤器可以对变量加以滤器修改。过滤器通过管道符号(|)与变量分隔,并且在括号中可以包含可选参数。一个变量可以链接多个过滤器。一个过滤器的输出可以应用于下一个过滤器。
官方过滤器api:http://jinja.pocoo.org/docs/2.10/templates/#builtin-filters
过滤器格式:{{ 变量|过滤器1|过滤器2|… }}
一、字符串过滤器
将‘hello’转大写字母
{{ 'hello'|upper }}
将‘hello’反转
{{ 'hello'|reverse }}
将‘hello’第一个字母转大写
{{ 'hello'|title}}
将‘hello’转大写之后反转
{{ 'hello'|upper|reverse }}
下面列出常用的过滤器
过滤器 | 说明 |
---|---|
safe | 禁止转义,渲染时不会转义特殊字符 |
capitallize | 把首字母转大写,其他的字母转小写 |
lower | 把所有的字母转小写 |
upper | 把所有字母转大写 |
title | 把每个单词的首字母转大写 |
trim | 去掉首尾空格 |
striptags | 去掉所有的HTML标签 |
join | 将多个值拼接成字符串,类似python的join()函数 |
replace | 替换字符串的值 |
round | 对数字四舍五入 |
int | 转换成int类型 |
二、列表过滤器
获取列表的第一个元素
{{ list1|first }}
获取列表的最后一个
{{ list1|last}}
排序
{{ list1|sort }}
列表求和
{{ list1|sum}}
求列表长度
{{ list1|length}}
三、自定义过滤器
例如自定义一个列表反转的过滤器
第一种方法,装饰器方式
@app.template_filter('listreverse')
def list_reverse(li: list):li.reverse()return li
第二种方法,通过app实例添加
def list_reverse(li: list):li.reverse()return liapp.add_template_filter(list_reverse, 'lireverse')
Jinja2常用模板语言(条件判断if,循环遍历for,过滤器)相关推荐
- 笔记整理1----Java语言基础(一)01 变量与数据类型+02 运算符与表达式+03 条件判断与循环语句+04 JAVA数组+05 函数与方法
01 变量与数据类型+02 运算符与表达式+03 条件判断与循环语句+04 JAVA数组+05 函数与方法 第01天 java基础知识 今日内容介绍 Java概述.helloworld案例 工 ...
- python条件输出_python基础(二)条件判断、循环、格式化输出
继续上一篇,今天主要总结一下条件判断.循环.格式化输出 一.条件判断 python中条件判断使用if else来判断,多分支的话使用if elif ... else,也就是如果怎么怎么样就怎么怎么样, ...
- python指定条件分类输出_python基础(二)条件判断、循环、格式化输出
继续上一篇,今天主要总结一下条件判断.循环.格式化输出 一.条件判断 python中条件判断使用if else来判断,多分支的话使用if elif ... else,也就是如果怎么怎么样就怎么怎么样, ...
- 打开高效文本编辑之门_Linux Awk之条件判断与循环
Linux awk之条件判断与循环 声明与简介 AWK 是一种处理文本文件的语言,是一个强大的文本分析工具.awk通常用来处理结构化(固定格式)的文本文件, awk每接收文件的一行,然后执行相应的命令 ...
- linux循环条件,shell脚本编写 之 条件选择,条件判断,循环语句
1 概述 编写shell脚本,一般离不开条件选择,条件判断以及循环语句.掌握这三个语法,将大大提高脚本的编写效率,使得脚本编写更加灵活,完成X相对复杂的工作 2 条件选择if语句 if语句选择执行,逐 ...
- smali to java_Smali —— 数学运算,条件判断,循环
通过上一篇 Smali 语法解析--Hello World 的学习,了解了 Smali 文件的基本格式.这一篇从最基本的数学运算,条件判断,循环等开始,更加详细的了解 Smali 语法. 数学运算 加 ...
- Python时间序列模型推理预测实战:时序推理数据预处理(特征生成、lstm输入结构组织)、模型加载、模型预测结果保存、条件判断模型循环运行
Python时间序列模型推理预测实战:时序推理数据预处理(特征生成.lstm输入结构组织).模型加载.模型预测结果保存.条件判断模型循环运行 目录
- python重复元素判定编程_从零开始学Python编程四:条件判断与循环
前面已经介绍了不少Python基础知识,大家不要觉得不耐烦,想要学好Python,做好Python开发,一定要打牢基础.大家也发现了,Python中很多基础知识和数学算法是一样的,比如今天要教给大家的 ...
- Sass学习笔记 -- 初步了解函数、运算、条件判断及循环
函数 sass定义了很多函数可供使用,当然你也可以自己定义函数,以@fuction开始.sass的官方函数链接为:sass fuction,实际项目中我们使用最多的应该是颜色函数,而颜色函数中又以li ...
最新文章
- (深入理解)matplotlib绘图原理(figure,axes,axis,canvas的区别)
- 【深度学习】Ivy 开源框架,深度学习大一统时代到来?
- 二十九、电子商务服务推荐项目基本描述
- 如何实现一个线程安全的 ConcurrentHashSet ?
- 软件配置管理(五)常用重构技巧
- 利用电脑上自带指纹识别嵌入程序中_Win 10 隐藏功能:不用任何软件就可实现手机投屏到电脑...
- 在hue中操作hive
- hfss仿真时间过长怎么解决_一文详解相控阵天线仿真技术
- 机器学习 Machine Learning中向量化矩阵化的技巧
- python中stripped string_【Python爬虫学习笔记(3)】Beautiful Soup库相关知识点总结
- 获取手机IMEI和UID
- poj 2705 Tangled in Cables 基础prim
- 维吾尔语小程序开发个人中心插件
- mysql hive 建表语句_关于Mysql元数据如何生成Hive建表语句注释脚本
- Oracle中insert into select from用法、table (fn_split())用法、select中的as扩展替代字段用法、Oracle序列
- 利用MATLAB解特征方程,并画出特征根的分布,便于分析系统的稳定性
- 百度表格识别——原理解读
- 阿里云 远程桌面 登录
- P2455 [SDOI2006]线性方程组
- 一、Golang性能分析工具