最近在學習Flask框架,那麼就說下jinja2吧~~~

jinja是組成Flask的模板引擎,先寫一個demo吧python

jinja的速度和Mako差很少,但比Genshi以及Django的模板引擎快10~20倍。

1.在jinja2中for循環內置常量{% block body %} <ul> {% for user in users %} <li><a href="{{ user.url }}">{{ user.username }}</a></li> {% endfor %} </ul> {% endblock %}

loop.index 當前迭代的索引(從1開始)
loop.index0 當前迭代的索引(從0開始)
loop.first 是不是第一次迭代,返回True\/False
loop.last 是不是最後一次迭代,返回True\/False
loop.length 序列的長度

注意:不能夠使用continue和break表達死來控制循環的執行。django

2.運算符 oop

  • +號運算符:能夠完成數字相加,字符串相加,列表相加。可是並不推薦使用+運算符來操做字符串,字符串相加應該使用~運算符。
  • -號運算符:只能針對兩個數字相減。
  • /號運算符:對兩個數進行相除。
  • %號運算符:取餘運算。
  • *號運算符:乘號運算符,而且能夠對字符進行相乘。
  • **號運算符:次冪運算符,好比2**3=8。
  • in操做符:跟python中的in同樣使用,好比{{1 in [1,2,3]}}返回true
  • ~號運算符:拼接多個字符串,好比{{"Hello" ~ "World"}}將返回HelloWorld

Jinja2模塊最重要的部分----宏url

      宏至關於一個搭建好的頁面一部分,能夠被引入,能夠往宏傳遞參數。能夠將一些常常用到的代碼片斷放到宏中,而後把一些不固定的值抽取出來當成一個變量,在使用宏時傳遞參數,從而將宏渲染成爲頁面的一部分。spa

好比:定義一個input標籤宏:code

{% macro input(name, value='', type='text') %}
<input type="{{ type }}" name="{{ name }}" value="{{
value|e }}">
{% endmacro %}

在其它地方使用這個宏快速建立出符合要求的input標籤:
<p>{{ input('username') }}</p>
<p>{{ input('password', type='password') }}</p>還有模板的繼承以及過濾器等等~~
相關文章
相關標籤/搜索