简介:本文将介绍如何在Python Flask应用中使用Jinja2模板引擎进行页面渲染。通过Jinja2,我们可以创建动态网页,并根据需要展示数据。
Flask 是一个轻量级的 Python Web 框架,它有一个非常灵活的模板引擎:Jinja2。使用 Jinja2,你可以轻松地创建动态网页,并使用变量、循环和条件语句来控制内容展示。
首先,确保你已经安装了 Flask 和 Jinja2。如果你还没有安装,可以使用以下命令进行安装:
pip install flask
接下来,我们将创建一个简单的 Flask 应用,并使用 Jinja2 模板引擎进行页面渲染。
1. 创建 Flask 应用
首先,创建一个名为 app.py 的文件,并导入 Flask:
from flask import Flaskapp = Flask(__name__)
2. 创建 Jinja2 模板
在 templates 文件夹中创建一个名为 index.html 的文件。这个文件夹需要单独创建,并且需要与 app.py 文件在同一目录下。
在 index.html 文件中,你可以编写 HTML 代码,并使用 Jinja2 模板语法插入变量、循环和条件语句。例如:
<!DOCTYPE html><html><head><title>{{ title }}</title></head><body><h1>Welcome to my website!</h1><p>Here are some example items:</p><ul>{% for item in items %}<li>{{ item }}</li>{% endfor %}</ul></body></html>
在上面的示例中,我们使用了双大括号 {{ }} 来插入变量和表达式。例如,{{ title }} 会被替换为变量 title 的值。我们还在循环语句中使用了 {% %} 语法。
3. 在 Flask 应用中渲染模板
现在,我们将创建一个路由来渲染上面创建的模板。在 app.py 文件中添加以下代码:
@app.route('/')def home():title = 'Welcome to my website!'items = ['Item 1', 'Item 2', 'Item 3']return render_template('index.html', title=title, items=items)
在上面的代码中,我们定义了一个名为 home() 的路由函数。当访问应用的根目录时,它将调用该函数。在该函数中,我们设置了变量 title 和 items,然后使用 render_template() 函数将它们传递给 index.html 模板进行渲染。render_template() 函数需要指定模板文件的相对路径和要传递给模板的变量。在本例中,我们将模板文件命名为 index.html,并将 title 和 items 作为变量传递给它。这将渲染出包含动态内容的 HTML 页面。注意,模板文件的相对路径是相对于 app.py 文件的。因此,我们需要确保 templates 文件夹与 app.py 文件在同一目录下。运行应用后,当你访问应用的根目录时,将看到一个动态的网页显示欢迎信息和一些示例项目列表。Jinja2 提供了一种强大而灵活的方式,允许你在 Python 中使用模板引擎来创建动态网页。通过使用变量、循环和条件语句,你可以轻松地控制页面内容的展示方式。在 Flask 应用中集成 Jinja2 可以帮助你快速构建动态网站,并在实际应用中提供更好的用户体验。