jinja2
语言的语法一般被 {% %}
包裹,python
的语法一般被 {{ }}
包裹;
-
set
:赋值语法,一般将较长变量赋值给较短变量,书写方便; - 过滤器:对数据进行操作
{% topic.replies() | count %}
:左边将作为右边函数的第一个参数
常用过滤器有:-
length
长度 -
capiitalize
首字母大写 -
center
居中 -
count
个数
-
自定义过滤器:
@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
当过滤器函数只有一个参数时,不带 ()
,只写函数名称,有多个参数时,不写第一个参数,因为左边数据就是第一个参数。
-
{% set u = topic.user() %}
jinja2
的set
语法,相当于赋值于一个名称短的变量,方便书写。 {{ topic.replies() | count }}
- {{ 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 :序列总长度
网友评论