Jinja2模板引擎语法

模板案例

eg:

<!doctype html>
<title>Hello template</title>
{% if name %}
  <h1>Hello {{ name }}!</h1>
{% else %}
  <h1>Hello flask!</h1>
{% endif %}

从上面的例子可以发现:
模板表达式是包含在分割符{{}}内
模板的控制语句都是包含在分割{% %}中
模板注释都是包含在分隔符{# #}中

  • 变量 : 视图传递过来的数据 {{ 变量名称 }}
  • 标签 : 就是python中的循环\分支结构... {% 标签名称 %}

表达式分类

表达式一般分为以下几种:

表达式种类举例
变量(最常用){{name}}
基础类型( 字符串,数值,列表,元祖,字典,布尔值)一般配合表达式使用{{ 'string' }}
运算表达式(算术与逻辑){{ False and True }} {{ 2 + 3 }}
过滤器' | ' ,测试器' is '一般配合表达式
函数调用{{ func( ) }}
“in”操作符{{ 1 in [1,2,3] }}
字符串连接符”~”{{ 'like' }}

变量过滤器

变量的值可以使用过滤器修改。过滤器在添加变量名之后,两者之间以竖线分隔。例如,下述模板把name变量的值变成首字母大写的形式:

Hello, {{name|capitalize}}

下面是Jinja2变量过滤器

过滤器名说明
safe渲染值时不转义
capitalize把值的首字母转换成大写,其他字母转换成小写
lower把值转换成小写形式
upper把值转换成大写形式
title把值中每个单词的首字母都转换成大写
trim把值首尾空格删掉
striptages渲染之前把值中所有的HTML标签都删掉

控制结构

在模板中使用条件判断语句

{% if user %}
   Hello, {{ user }} !
{% else %}
   Hello, Stranger !
{% endif %}

for循环渲染一组元素

<ul>
{% for comment in comments %}
      <li>{{ comment }}</li>
{% endfor %}
</ul>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值