Jinja2基本操做


變量:  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() 函數獲取原來的內容。

 

以上內容來自於書中摘抄,若有侵權請告知刪除。

相關文章
相關標籤/搜索