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. 笔记整理1----Java语言基础(一)01 变量与数据类型+02 运算符与表达式+03 条件判断与循环语句+04 JAVA数组+05 函数与方法

    01 变量与数据类型+02 运算符与表达式+03 条件判断与循环语句+04 JAVA数组+05 函数与方法 第01天 java基础知识 今日内容介绍  Java概述.helloworld案例  工 ...

  2. python条件输出_python基础(二)条件判断、循环、格式化输出

    继续上一篇,今天主要总结一下条件判断.循环.格式化输出 一.条件判断 python中条件判断使用if else来判断,多分支的话使用if elif ... else,也就是如果怎么怎么样就怎么怎么样, ...

  3. python指定条件分类输出_python基础(二)条件判断、循环、格式化输出

    继续上一篇,今天主要总结一下条件判断.循环.格式化输出 一.条件判断 python中条件判断使用if else来判断,多分支的话使用if elif ... else,也就是如果怎么怎么样就怎么怎么样, ...

  4. 打开高效文本编辑之门_Linux Awk之条件判断与循环

    Linux awk之条件判断与循环 声明与简介 AWK 是一种处理文本文件的语言,是一个强大的文本分析工具.awk通常用来处理结构化(固定格式)的文本文件, awk每接收文件的一行,然后执行相应的命令 ...

  5. linux循环条件,shell脚本编写 之 条件选择,条件判断,循环语句

    1 概述 编写shell脚本,一般离不开条件选择,条件判断以及循环语句.掌握这三个语法,将大大提高脚本的编写效率,使得脚本编写更加灵活,完成X相对复杂的工作 2 条件选择if语句 if语句选择执行,逐 ...

  6. smali to java_Smali —— 数学运算,条件判断,循环

    通过上一篇 Smali 语法解析--Hello World 的学习,了解了 Smali 文件的基本格式.这一篇从最基本的数学运算,条件判断,循环等开始,更加详细的了解 Smali 语法. 数学运算 加 ...

  7. Python时间序列模型推理预测实战:时序推理数据预处理(特征生成、lstm输入结构组织)、模型加载、模型预测结果保存、条件判断模型循环运行

    Python时间序列模型推理预测实战:时序推理数据预处理(特征生成.lstm输入结构组织).模型加载.模型预测结果保存.条件判断模型循环运行 目录

  8. python重复元素判定编程_从零开始学Python编程四:条件判断与循环

    前面已经介绍了不少Python基础知识,大家不要觉得不耐烦,想要学好Python,做好Python开发,一定要打牢基础.大家也发现了,Python中很多基础知识和数学算法是一样的,比如今天要教给大家的 ...

  9. Sass学习笔记 -- 初步了解函数、运算、条件判断及循环

    函数 sass定义了很多函数可供使用,当然你也可以自己定义函数,以@fuction开始.sass的官方函数链接为:sass fuction,实际项目中我们使用最多的应该是颜色函数,而颜色函数中又以li ...

最新文章

  1. (深入理解)matplotlib绘图原理(figure,axes,axis,canvas的区别)
  2. 【深度学习】Ivy 开源框架,深度学习大一统时代到来?
  3. 二十九、电子商务服务推荐项目基本描述
  4. 如何实现一个线程安全的 ConcurrentHashSet ?
  5. 软件配置管理(五)常用重构技巧
  6. 利用电脑上自带指纹识别嵌入程序中_Win 10 隐藏功能:不用任何软件就可实现手机投屏到电脑...
  7. 在hue中操作hive
  8. hfss仿真时间过长怎么解决_一文详解相控阵天线仿真技术
  9. 机器学习 Machine Learning中向量化矩阵化的技巧
  10. python中stripped string_【Python爬虫学习笔记(3)】Beautiful Soup库相关知识点总结
  11. 获取手机IMEI和UID
  12. poj 2705 Tangled in Cables 基础prim
  13. 维吾尔语小程序开发个人中心插件
  14. mysql hive 建表语句_关于Mysql元数据如何生成Hive建表语句注释脚本
  15. Oracle中insert into select from用法、table (fn_split())用法、select中的as扩展替代字段用法、Oracle序列
  16. 利用MATLAB解特征方程,并画出特征根的分布,便于分析系统的稳定性
  17. 百度表格识别——原理解读
  18. 阿里云 远程桌面 登录
  19. P2455 [SDOI2006]线性方程组
  20. 一、Golang性能分析工具

热门文章

  1. 喜讯:乔迁至CSDN
  2. 使用C#引用S7.Net.dll 连接西门子1500PLC 报异常,
  3. 爬取上市公司第一大股东持股比例
  4. 华为云IoT亮相厦门国际物联网博览会,智简联接助力行业智能升级
  5. 键树查找基本内容介绍
  6. LIRE代码剖析3——常用的特征提取与匹配方法
  7. 骨干网络之DenseNet:Densely Connected Convolutional Networks论文学习
  8. 基于ssm框架的汽车租赁租车行系统
  9. Golang的Fork/Join实现
  10. 2020CCPC长春 K Ragdoll