Python Flask系列教程:Jinja2模板引擎的使用

作者:蛮不讲李2024.01.22 12:29浏览量:404

简介:本文将介绍如何在Python Flask应用中使用Jinja2模板引擎进行页面渲染。通过Jinja2,我们可以创建动态网页,并根据需要展示数据。

Flask 是一个轻量级的 Python Web 框架,它有一个非常灵活的模板引擎:Jinja2。使用 Jinja2,你可以轻松地创建动态网页,并使用变量、循环和条件语句来控制内容展示。
首先,确保你已经安装了 Flask 和 Jinja2。如果你还没有安装,可以使用以下命令进行安装:

  1. pip install flask

接下来,我们将创建一个简单的 Flask 应用,并使用 Jinja2 模板引擎进行页面渲染。
1. 创建 Flask 应用
首先,创建一个名为 app.py 的文件,并导入 Flask:

  1. from flask import Flask
  2. app = Flask(__name__)

2. 创建 Jinja2 模板
templates 文件夹中创建一个名为 index.html 的文件。这个文件夹需要单独创建,并且需要与 app.py 文件在同一目录下。
index.html 文件中,你可以编写 HTML 代码,并使用 Jinja2 模板语法插入变量、循环和条件语句。例如:

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <title>{{ title }}</title>
  5. </head>
  6. <body>
  7. <h1>Welcome to my website!</h1>
  8. <p>Here are some example items:</p>
  9. <ul>
  10. {% for item in items %}
  11. <li>{{ item }}</li>
  12. {% endfor %}
  13. </ul>
  14. </body>
  15. </html>

在上面的示例中,我们使用了双大括号 {{ }} 来插入变量和表达式。例如,{{ title }} 会被替换为变量 title 的值。我们还在循环语句中使用了 {% %} 语法。
3. 在 Flask 应用中渲染模板
现在,我们将创建一个路由来渲染上面创建的模板。在 app.py 文件中添加以下代码:

  1. @app.route('/')
  2. def home():
  3. title = 'Welcome to my website!'
  4. items = ['Item 1', 'Item 2', 'Item 3']
  5. return render_template('index.html', title=title, items=items)

在上面的代码中,我们定义了一个名为 home() 的路由函数。当访问应用的根目录时,它将调用该函数。在该函数中,我们设置了变量 titleitems,然后使用 render_template() 函数将它们传递给 index.html 模板进行渲染。render_template() 函数需要指定模板文件的相对路径和要传递给模板的变量。在本例中,我们将模板文件命名为 index.html,并将 titleitems 作为变量传递给它。这将渲染出包含动态内容的 HTML 页面。注意,模板文件的相对路径是相对于 app.py 文件的。因此,我们需要确保 templates 文件夹与 app.py 文件在同一目录下。运行应用后,当你访问应用的根目录时,将看到一个动态的网页显示欢迎信息和一些示例项目列表。Jinja2 提供了一种强大而灵活的方式,允许你在 Python 中使用模板引擎来创建动态网页。通过使用变量、循环和条件语句,你可以轻松地控制页面内容的展示方式。在 Flask 应用中集成 Jinja2 可以帮助你快速构建动态网站,并在实际应用中提供更好的用户体验。