Flask框架Jinjia模板常用语法总结

  • Post category:Python

请听我讲解“Flask框架Jinja模板常用语法总结”。

1. 概述

Jinja模板是Flask框架中常用的模板引擎之一,用来生成动态内容。它非常适合大规模的Web应用程序的开发,提供了很多实用的语法结构,让我们可以更加高效地实现网页模板。

本文将介绍Jinja模板中的一些常用语法及其使用方法。

2. Jinja模板的基本语法

2.1 注释

在使用Jinja模板的时候,我们可以使用”#”来进行注释。例如:

<!-- 这是HTML注释 -->
{% # 这是Jinja注释 %}

2.2 输出变量

在Jinja模板中,我们通常使用{{ }}语法输出变量。例如:

{% set name = "Flask" %}
{{ name }}

2.3 控制结构

Jinja模板提供了一些控制结构,如if语句、for循环等。

2.3.1 if语句

if语句用于判断某个条件是否成立,如果成立就执行某些代码。例如:

{% if age >= 18 %}
<p>你已经成年了!</p>
{% else %}
<p>你还未成年!</p>
{% endif %}

2.3.2 for循环

for循环用于循环遍历一个序列,并对每个元素执行某些代码。例如:

{% for i in [1, 2, 3, 4] %}
<p>{{ i }}</p>
{% endfor %}

2.4 宏

宏是一段可重用的代码块,可以像函数一样被调用。在Jinja模板中,我们使用{% macro %}来定义宏。例如:

{% macro render_user(user) %}
<div class="user">
    <h1>{{ user.name }}</h1>
    <p>{{ user.email }}</p>
</div>
{% endmacro %}

3. Jinja模板的高级用法

3.1 过滤器

过滤器用于对变量进行转换和格式化,例如将一个字符串转换为大写字母,或者对一个日期进行格式化输出。在Jinja模板中,我们使用”|”符号来使用过滤器。例如:

<p>{{ name|upper }}</p>
<p>{{ date|strftime('%Y-%m-%d %H:%M:%S') }}</p>

3.2 继承模板

Jinja模板中,我们可以使用{% extends %}关键字来继承父模板。例如:

父模板base.html

<!DOCTYPE html>
<html>
<head>
    <title>{% block title %}{% endblock %}</title>
</head>
<body>
    {% block content %}
    {% endblock %}
</body>
</html>

子模板home.html

{% extends 'base.html' %}

{% block title %}Home{% endblock %}

{% block content %}
<h1>Welcome to {{ name }}</h1>
{% endblock %}

3.3 包含模板

Jinja模板中,我们可以使用{% include %}关键字来包含其他模板。例如:

{% include 'header.html' %}

<p>主要内容</p>

{% include 'footer.html' %}

4. 示例说明

4.1 输出变量

例如,我们需要输出一个列表中的数据,可以使用for循环。

{% set my_list = ['Jack', 'Tom', 'Lucy'] %}
{% for name in my_list %}
<p>{{ name }}</p>
{% endfor %}

4.2 继承模板

例如,我们需要定义一个Base模板作为其他所有模板的父模板,可以这样做。

父模板base.html

<!DOCTYPE html>
<html>
<head>
    <title>{% block title %}{% endblock %}</title>
</head>
<body>
    {% block content %}
    {% endblock %}
</body>
</html>

子模板home.html

{% extends 'base.html' %}

{% block title %}Home{% endblock %}

{% block content %}
<h1>Welcome to {{ name }}</h1>
{% endblock %}

5. 总结

本文总结了Jinja模板的常用语法,包括注释、输出变量、控制结构、宏、过滤器、继承模板和包含模板等。掌握这些语法是开发Flask应用程序的基础,也是提高开发效率的重要手段。