模板继承

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html lang="en">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    {% block head %}
    <link rel="stylesheet" href="style.css" />
    <title>{% block title %}{% endblock %} - My Webpage</title>
    {% endblock %}
</head>
<body>
    <div id="content">{% block content %}{% endblock %}</div>
    <div id="footer">
        {% block footer %}
        &copy; Copyright 2008 by <a href="http://domain.invalid/">you</a>.
        {% endblock %}
    </div>
</body>
</html>

子模板

    {% extends "base.html" %}
    {% block title %}Index{% endblock %}
    {% block head %}
        {{ super() }}
        <style type="text/css">
            .important { color: #336699; }
        </style>
    {% endblock %}
    {% block content %}
        <h1>Index</h1>
        <p class="important">
          Welcome on my awesome homepage.
        </p>
    {% endblock %}

Delimiters(分隔符)

{% ... %} 语句(Statements)
{{ ... }} 打印模板输出的表达式(Expressions)
{# ... #} 注释
# ... ## 行语句(Line Statements)

Variables(变量)

{{ mydict['key'] }}
{{ mylist[3] }}
{{ mylist[myintvar] }}
{{ myobj.somemethod() }}
{{ foo.bar }}
{{ foo['bar'] }}

for循环

    {% for item in navigation %}
        <li><a href="{{ item.href }}">{{ item.caption }}</a></li>
        {{loop.last}}
    {% endfor %}
    loop.index        当前循环迭代的次数(从 1 开始)
    loop.index0        当前循环迭代的次数(从 0 开始)
    loop.revindex    到循环结束需要迭代的次数(从 1 开始)
    loop.revindex0    到循环结束需要迭代的次数(从 0 开始)
    loop.first        如果是第一次迭代,为 True 。
    loop.last        如果是最后一次迭代,为 True 。
    loop.length        序列中的项目数。
    loop.cycle        在一串序列间期取值的辅助函数。见下面的解释。

if条件语句

1     {% extends layout_template if layout_template is defined else 'master.html' %}
2     
3     {% if kenny.sick %}
4         Kenny is sick.
5     {% elif kenny.dead %}
6         You killed Kenny!  You bastard!!!
7     {% else %}
8         Kenny looks okay --- so far
9     {% endif %}

包含

{% include 'header.html' %}
{% include "sidebar.html" ignore missing %} [(Jinja 2.2) 如果模板不存在,Jinja 会忽略这条语句]
{% include ['special_sidebar.html', 'sidebar.html'] ignore missing %}

Filter(过滤器)

    {{items|length}}         返回长度
    {{ items|join(', ') }}    过滤器用来修改变量,使用一个竖线和变量相隔
    {{items|safe}}             渲染时不转义
    {{items|capitalize}}     首字母大写
    {{items|lower}}     小写
    {{items|upper}}     大写
    {{items|title}}     每个单词的首字母都转换成大写
    {{items|trim}}         去掉首尾空格
    {{items|striptags}} 去掉值里的HTML标签
    default 设置一个默认值,如果变量未定义,就用这个默认值替换。类似这样:
    {{ my_variable|default('my_variable is not defined') }}

 

 posted on 2021-07-10 08:59  boye169  阅读(60)  评论(0编辑  收藏  举报