flask基础之jinja2模板-流程控制

和其它编程语言一样,jinja2也有流程控制。

一、测试

  在jinja2,测试(Test)是根据变量或表达式的值生成布尔结果的一种函数工具,测试关键字is

  {{ jinja2  is defined }}

  或

  {{ jinja2  is defined() }}   #需要参数的测试,括号方式传入。

  eg:

  number(value),检查对象是否是一个数字

  sequence(value),检查对象是否是序列

  string(value),检查对象是否是字符串

  undefined(value),检查一个对象是否未定义

二、判断语句

  if...elif...else...endif

  ......

  {% if A %}

    ...

  {% elif B %}

    ...

  {% else %}

  {% endif %}

三、循环语句

  {% for .. in ... %}

  ...

  {% endfor %}

  一些被重复执行的语句被称为循环体,能否继续重复决定了循环的终止条件

  

  注:字典是无序的,所以可能需要把它作为一个已排序的列表传入模板或使用dictsort过滤器

  但,jinja模板中不能使用break或continue终止,怎么办?

  可通过loop下的一一些特殊变量控制,如

  loop.index,当前循环迭代多次数(从1开始)

  loop.index(),当前循环迭代的次数(从0开始)

  loop.revindex,到循环结束需要迭代的次数(从1开始)

  loop.revindex(),到循环结束需要迭代的次数(从0开始)

  loop.first,如果是第1次迭代,则为true

  ...

  loop.length ,序列中农的项目数量

  loop.cycle,在一串序列间取值的辅助函数

原文地址:https://www.cnblogs.com/czdbky/p/9349867.html

时间: 2024-11-09 20:12:59

flask基础之jinja2模板-流程控制的相关文章

flask基础之jinja2模板-过滤器

上一节主要是介绍了jinja2基本的结构及表现形式,本节介绍模板变量的处理技术:过滤器 一.过滤器 过滤器通过管道符号"|"与变量连接,并且可以通过圆括号传递参数. {{  variable|default('param')  }} 解释: variable,待转换的变量 default,是过滤器,含义是:判断被转换的变量是否被定义过,如果没有被定义,则用字符串参数替换被转换的变量, 比如,abs(number)过滤器,将被转换的变量转换为绝对值形式.attr(object,name)

python基础(3)---流程控制

流程控制 与C语言不通的是python的流程控制代码块不是用{}花括号表示的,而是强制缩进来控制的:而且缩进必须一致,官方推荐是使用4个空格,不建议使用tab(制表符)做缩进,一是不同的系统tab所占宽度不一致,会比较乱,二是由于python要求同级缩进必须保持一致,所以有些时候看上去是对齐l,但是有的是空格有的是tab键,使得不容易排错,另外条件判断的语句不需要使用()括起来,但是条件语句后面使用: 1.条件判断--if语句 条件判断就是执行某个代码段之前先进行判断,如果符合再执行某个代码块

C语言基础之函数和流程控制

函数和流程控制也是每个编程语言的基本概念,函数是划分模块的最小单位,良好的函数规划能直接提升软件的质量,C语言的流程控制主要由以下几个语句组成,条件分支语句.选择语句.循环语句.goto语句.return语句等. 函数的定义 一个函数包含返回值.函数名和参数列表,如下定义了一个返回值为 int 函数名为show拥有一个int类型参数的函数 int show(int param) {     printf("这是一个名为show的函数");     return 0; } 再来定义个没有

python基础02—运算符与流程控制

运算符与流程控制 运算符 赋值运算 用'='表示,'='的左边只能是变量 算术运算 +.-.*:加.减.乘 /:除法运算,运算结果为浮点数 //:除法运算,运算结果为整数(商) %:求余 **:求幂 复合运算 +=.-=.=./=.//=.%=.*= 关系运算(比较运算) >.>=.<.<=.==.!= 由操作数和运算符组成的式子称为表达式 关系表达式是有值的(布尔值),符合数学逻辑值为True,不符合数学逻辑值为False 逻辑运算 与(and):两边的表达式同时为真,值才为真

Java基础(二)流程控制和数组

流程控制 break结束多重循环 public static void main(String[] args) { outer: for(int i = 0; i < 5; i++) { for(int j = 0; j < 3; j++) { System.out.println("i的值为:" + i + " j的值为:" + j); if(j == 1) { break outer; } } } } //输出: //i的值为:0 j的值为:0 //

JavaScript基础4——关于语句流程控制(分支语句、循环语句等)

分支语句 (1)if...else...语句,基本格式分三种,如下 1 <script type="text/javascript"> 2 var i=50; 3 //if语句 4 if (条件) 5 { 6 条件成立时执行代码 7 } 8 9 //if...else语句 10 if (条件) 11 { 12 条件成立时执行此代码 13 } 14 else 15 { 16 条件不成立时执行此代码 17 } 18 19 //if...else if...else if...e

Day1[下] - Python基础 基本语法、流程控制

一.变量\字符编码 Variables are used to store information to be referenced and manipulated in a computer program. They also provide a way of labeling data with a descriptive name, so our programs can be understood more clearly by the reader and ourselves. It

Python 基础(三)——流程控制之break 、continue 、else

break break 语句和 C 中的类似,用于跳出最近的一级 for 或 while 循环. 循环可以有一个 else 子句:它在循环迭代完整个列表(对于 for )或执行条件为 false (对于 while )时执行,但循环被 break 中止的情况下不会执行.以下搜索素数的示例程序演示了这个子句: >>> for n in range(2, 10): ... for x in range(2, n): ... if n % x == 0: ... print(n, 'equal

黑马程序员——Java基础语法(二)---流程控制

------Java培训.Android培训.iOS培训..Net培训.期待与您交流! ------- 本文主要介绍java基础语法中的流程控制,流程控制是我们写出灵活代码的基础.常见的流程控制主要有四类:判断结构.选择结构.循环结构.其他控制结构 一.判断结构 判断结构的标志是if语句,if语句主要有三种表现形式: 1.if(条件表达式) { 执行语句 } 注意: 1.如果if语句中只有一条语句,那么可以不写大括号.不过初学者一定要写括号,以免出错. 2.如果if语句没写大括号,if就只能控制