jinja2

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.cycle

if语句
{% 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 %}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

腾讯AI架构师

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值