{% raw %}
Jinja2 模板引擎
Jinja2 是 Python 的模板引擎。 将数据呈现到网页时,可以使用它。 对于您访问的每个链接,您都希望使用格式显示数据。 通过使用模板引擎,我们可以将显示逻辑(html,css)与实际的 Python 代码分开。 让我们从一个例子开始
关于 Jinja
Jinja2 模板只是一个文本文件,不需要特定的扩展名,例如.html,.xml。模板可能包含标签和特殊定界符:
| 定界符 | 用法 |
|---|---|
{% ... %} |
语句 |
{{ ... }} |
要打印到模板输出的表达式 |
{# ... #} |
注释未包含在模板输出中 |
# ... # |
行语句 |
在上面的示例中,我们有两个语句和一个表达式。 我们还没有包含任何注释。
基本模板和子模板
Jinja2 模板可以扩展基本模板。 在包含许多站点的网页上,您可能希望这些页面看起来相似。 在/templates/中,使用以下代码创建一个名为base.html的文件:
{% block head %}<link rel="stylesheet" href="style.css">{% title><block title %}{% endblock %} - My Webpage</title>{% endblock %}{% div id="content"><block content %}{% endblock %}</div><div id="footer">{% block footer %}Copyright 2015 by <a href="https://pythonspot.com/">pythonspot</a>.{% endblock %}</div>
我们没有设置style.css,但是您可以设置一个。将/templates/user.html更改为:
{% extends "base.html" %}{% block title %}Index{% endblock %}{% block head %}{{ super() }}<style type="text/css">.important { color: #336699; }</style>{% endblock %}{% block content %}<h1>Users</h1><p class="important"></p><ul>{% for user in users %}<li>{{ user }}</li>{% endfor %}</ul>{% endblock %}
通过以下方式重新启动应用程序:
python app.py* Running on http://0.0.0.0:8080/
输出:

Flask Jinja 模板引擎
{% endraw %}
