http://docs.jinkan.org/docs/jinja2/templates.html#id2
分为api-sdk和html写法,渲染时模板里面都是python语法
表达式
 新版行语句
开头为表达式
开头为注释
for语句
 
{% for item in seq -%}
 {{ item }}
 {%- endfor %}loop.index 当前循环迭代的次数(从 1 开始)
 loop.index0 当前循环迭代的次数(从 0 开始)
 loop.revindex 到循环结束需要迭代的次数(从 1 开始)
 loop.revindex0 到循环结束需要迭代的次数(从 0 开始)
 loop.first 如果是第一次迭代,为 True 。
 loop.last 如果是最后一次迭代,为 True 。
 loop.length 序列中的项目数。
 loop.cycleif语句
 
{% if kenny.sick %}
 Kenny is sick.
 {% elif kenny.dead %}
 You killed Kenny! You bastard!!!
 {% else %}
 Kenny looks okay — so far
 {% endif %}读取变量
 
{{ foo.bar }}
赋值变量
 {% set key, value = call_something() %}过滤器
 {{ name|striptags|title }}
 也可以接收函数过滤器
 {{ list|join(’, ') }}
 也可以这种写法
 {% filter upper %}
 This text becomes uppercase
 {% endfilter %}注释
 {# … #}不转义
 {% raw %}
 {% endraw %}宏(代码展开)函数
 {% macro input(name, value=’’, type=‘text’, size=20) -%}
 {%- endmacro %}调用宏
 先import模板{{ input('username') }}模板集成
定义一个模板函数,子模板同名函数可以覆盖。统一模板文件不能定义同名模板函数。
 如果想多次使用这个函数,可以后面的调用{{ self.fun_name() }}
 模板函数默认不可以访问函数外变量。需要添加scoped声明才行,子模板不需要在添加scoped 声明
{% block fun_name %}
 {% endblock %}{% block fun_name scoped %}
 {% endblock %}派生模板
 {% extends “xx.html” %}子模板,定义模板函数(若存在就覆盖)
 {% block fun_name %}
 {{ super() }}
 {% endblock %}                










