Jinja2语法

jinjia2的学习笔记

1.读取字典:

{{ data.xxx }}
{{ data['xxx'] }}

2.流程控制语句

(1)if
{% if data.age == 18 %}
{{ data.name }}
{% elif %}
***
{% else %}

{% end if %}
(2) for 循环

{% for i in name %}
当前是第 * 条
{% endfor %}

变量可以通过“过滤器”进行修改,过滤器可以理解为是jinja2里面的内置函数和字符串处理函数。

常用的过滤器有:

safe: 渲染时值不转义
capitialize: 把值的首字母转换成大写,其他子母转换为小写
lower: 把值转换成小写形式
upper: 把值转换成大写形式
title: 把值中每个单词的首字母都转换成大写
trim: 把值的首尾空格去掉
striptags: 渲染之前把值中所有的HTML标签都删掉
join: 拼接多个值为字符串
replace: 替换字符串的值
round: 默认对数字进行四舍五入,也可以用参数进行控制
int: 把值转换成整型
那么如何使用这些过滤器呢? 只需要在变量后面使用管道(|)分割,多个过滤器可以链式调用,前一个过滤器的输出会作为后一个过滤器的输入。

{{ ‘abc’ | captialize }}

Abc

{{ ‘abc’ | upper }}

ABC

{{ ‘hello world’ | title }}

Hello World

{{ “hello world” | replace(‘world’,‘daxin’) | upper }}

HELLO DAXIN

{{ 18.18 | round | int }}

18

用于继承

jinja2中最强大的部分就是模板继承。模板继承允许我们创建一个基本(骨架)文件,其他文件从该骨架文件继承,然后针对自己需要的地方进行修改。利用block关键字表示其包涵的内容可以进行修改。

以下面的html文件index.html为例:

<!DOCTYPE html>
<html lang="en">
<head>
    {% block head %}
    <link rel="stylesheet" href="style.css"/>
    <title>{% block title %}{% endblock %} - My Webpage</title>
    {% endblock %}
</head>
<body>
<div id="content">{% block content %}{% endblock %}</div>
<div id="footer">
    {% block  footer %}
    <script>This is javascript code </script>
    {% endblock %}
</div>
</body>
</html>

这里定义了四处 block,即:head,title,content,footer。

{% extend "index.html" %}       # 继承index.html文件
 
{% block title %} 首页{% endblock %}   # 定制title部分的内容
 
{% block head %}
    {{  super()  }}        # 用于获取原有的信息
    <style type='text/css'>
    .important { color: #FFFFFF }
    </style>
{% endblock %}   
上一篇:四剑客 awk上


下一篇:使用 AWK 去掉文本文档中的空白行