變量: html
JinJia2能識別許許多多python類型中的變量,例如python
<p> 獲取字典中的值: {{ Dict['Key'] }} </p> <p> 獲取列表中的值: {{ List[2] }} </p> <p> 獲取對象方法: {{ obj.Method() }} </p>
過濾器:api
過濾器名稱 | 說明 |
safe | 渲染時不使用轉義 |
capitalize | 將值的首字母轉換成大寫的形式,其餘的字母轉換爲小寫 |
lower | 把值轉換成爲小寫 |
upper | 把值轉換成大寫 |
title | 把值中每一個單詞的首字母都轉換成大寫的形式 |
trim | 把值的空格去掉 |
striptags | 渲染以前把值中全部的HTML標籤都刪除 |
基本語句:函數
if 語句spa
1 {% if condation%} 2 第一分支語句 3 {% else %} 4 第二分支語句 5 {% endif %}
for語句code
1 { % for comment in comments %} 2 <li>{%commet%}</li> 3 {% endfor %}
宏: 宏的使用方法相似於聲明一個函數,能夠將經常使用的功能封裝起來,放在單獨的文件當中,而後再須要使用的位置進行引用便可htm
1 {% macro render_comment(comment) %} 2 <li> {{ comment }} </li> 3 {% endmacro %} 4 5 {% for comment in comments %} 6 {{ render_comment(comment) }} 7 {% endif %}
在其餘文件中的宏的引用對象
1 {% import 'macros.html' as macros %} 2 {% for comment in comments %} 3 {{ macros.render_comment(comment) }} 4 {% endfor %}
須要在多處重複使用的模板代碼片斷能夠寫入單獨的文件當中,再包含所在全部模板中,以免重複blog
1 {% include ‘common.html’ %}
另外一種代碼複用的方式是模板繼承,它相似於python代碼中的繼承。首先,建立愛你一個模板基類文件「base.html」繼承
1 <html> 2 <head> 3 {% block head %} 4 <title>{% block title %}{% endblock %} - My Application</title> 5 {% endblock %} 6 </head> 7 <body> 8 {% block body %} 9 {% endblock %} 10 </body> 11 </html>
衍生模板: block 標籤訂義的元素能夠在衍生模板中進行修改,例如,咱們定義了名爲head\title和body的塊。
1 {% extends "base.html" %} 2 {% block title %} Indexx {% endblock %} 3 {% block head %} 4 {{ super() }} 5 <style> 6 </style> 7 {% endblock %} 8 {% block body %} 9 <h1> Hello, World! </h1> 10 {% endblock %}
extends指令聲明這個模板衍生自base.html。在extends指令後,基模板中的3個塊被從新定義,模板引擎會將其插入適當的位置。注意新定義的hea塊,在基類模板中其內容不是空的,因此使用super() 函數獲取原來的內容。
以上內容來自於書中摘抄,若有侵權請告知刪除。