jinja2

2018-01-02  本文已影响0人  马梦里

jinja2 语言的语法一般被 {% %} 包裹,python 的语法一般被 {{ }} 包裹;

自定义过滤器:

@app.add_template_filter
def test1(input):
    r = 'process {} using test filter'.format(input)
    return r

装饰器的语法是固定的,那么现在 test1() 函数就是一个过滤器:
{% majun | test1 %}
majun 将作为 test1 函数的第一个参数,输出为:
process majun using test filter
当过滤器函数只有一个参数时,不带 (),只写函数名称,有多个参数时,不写第一个参数,因为左边数据就是第一个参数。

  1. {% set u = topic.user() %}
    jinja2set 语法,相当于赋值于一个名称短的变量,方便书写。
  2. {{ topic.replies() | count }}
  3. {{ loop.index }}楼 / {{ loop.length }}楼
    loop 是 jinja2 的语法,在循环语句 {% for ... %} 内部使用:
    loop.index     :表示迭代到当前的索引,从1开始计算
    loop.index0    :迭代到当前的索引,从0开始计算
    loop.revindex  :相对于序列末尾的索引,从1开始计算
    loop.revindex0 :相对于序列末尾的索引,从0开始计算
    loop.first     :bool值,序列的第一个为True,其他为False
    loop.last      :和 loop.first 相反
    loop.length    :序列总长度
    
上一篇下一篇

猜你喜欢

热点阅读