1. 安装 Jinja2
Flask 默认包含 Jinja2,所以你不需要额外安装。如果你使用的是虚拟环境,确保你的虚拟环境中已经安装了 Flask。
2. 创建模板文件
在你的 Flask 应用中,通常会在一个名为 templates 的文件夹中创建模板文件。例如,可以创建一个名为 index.html 的模板文件:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>{{ title }}</title>
</head>
<body>
<h1>{{ greeting }}</h1>
<p>Welcome to my Flask App!</p>
</body>
</html>
在这个模板中,{{ title }} 和 {{ greeting }} 是变量,它们将在渲染时被实际的值替代。
3. 渲染模板
在视图函数中,使用 render_template 函数来渲染模板。例如:
from flask import Flask, render_template
app = Flask(__name__)
@app.route('/')
def home():
return render_template('index.html', title='Home Page', greeting='Hello, Flask!')
if __name__ == '__main__':
app.run(debug=True)
在这个例子中,render_template 函数接受一个模板文件名和一系列变量,并将它们渲染到模板中。这样,当用户访问应用的根路径时,将看到包含动态内容的页面。
4. 模板控制结构
Jinja2 支持一系列的控制结构,如条件语句和循环,允许你在模板中执行一些逻辑。以下是一些简单的示例:
{% if user %}
<p>Hello, {{ user }}!</p>
{% else %}
<p>Hello, Guest!</p>
{% endif %}
<ul>
{% for item in items %}
<li>{{ item }}</li>
{% endfor %}
</ul>
在这个例子中,使用了 {% if ... %} 和 {% for ... %} 等控制结构。
5. 模板过滤器
Jinja2 还支持过滤器,用于在变量上执行额外的操作。以下是一些示例:
<p>{{ text|capitalize }}</p> <!-- 将文本首字母大写 -->
<p>{{ number|format('.2f') }}</p> <!-- 将数字格式化为保留两位小数的字符串 -->
这些是一些关于 Flask 模板的基本概念。通过合理使用模板,你可以将动态数据嵌入到静态 HTML 页面中,从而创建出更具交互性和动态性的 Web 应用。
转载请注明出处:http://www.zyzy.cn/article/detail/7303/Flask