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,在一串序列间取值的辅助函数

posted on 2018-07-22 14:21  释放自我-建立真我-追求无我  阅读(170)  评论(0编辑  收藏  举报

导航