当前位置:   article > 正文

Python Flask 基础入门 第五课:模板引擎 Jinjia2 模板继承

jinjia2

模板引擎

当涉及到Flask框架中的模板渲染时,这篇博客将深入讨论该主题,并分成不同章节来详细介绍。我们将学习什么是模板引擎,如何使用Jinja2来渲染HTML页面,如何传递数据给模板以动态生成内容,以及如何使用模板继承来创建一致的页面布局。

什么是模板引擎?

模板引擎是一种用于动态生成HTML或其他文本内容的工具。在Flask中,我们使用Jinja2作为默认的模板引擎。Jinja2允许我们在HTML模板中插入动态内容,例如从数据库中检索的数据或用户提供的输入。

使用Jinja2模板引擎

安装Jinja2

要开始使用Jinja2,首先需要确保Flask已正确安装,因为Flask已经集成了Jinja2。如果未安装,可以使用pip进行安装:

pip install Flask
  • 1

创建HTML模板

  1. 在Flask应用的根目录下创建一个名为 “templates” 的文件夹。
  2. 在 “templates” 文件夹中创建一个HTML模板文件,例如 “index.html”。

模板变量

在模板中,您可以使用双大括号 {{ 变量名 }} 来插入变量。这些变量将在渲染模板时由Flask动态替换。

<!DOCTYPE html>
<html>
<head>
    <title>模板示例</title>
</head>
<body>
    <h1>{{ title }}</h1>
    <p>{{ content }}</p>
</body>
</html>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

渲染模板

在Flask应用中,您可以使用render_template函数来渲染模板并传递变量的值。

from flask import Flask, render_template

app = Flask(__name__)

@app.route('/')
def index():
    title = "欢迎来到我的网站"
    content = "这是一个使用Flask和Jinja2的示例页面"
    return render_template('index.html', title=title, content=content)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

传递数据给模板

要向模板传递数据,您可以在render_template函数中提供关键字参数。上面的示例已经演示了如何传递titlecontent变量。您可以传递任何需要在模板中显示的数据。

模板继承

模板继承是一种强大的技术,可以使您在多个页面中共享相同的布局结构。通常,您会创建一个基本模板,然后在不同页面上扩展它。

创建基本模板

  1. 创建一个名为 “base.html” 的基本模板文件,其中包含通用的HTML结构,例如头部、导航栏和页脚。
<!DOCTYPE html>
<html>
<head>
    <title>{% block title %}{% endblock %}</title>
</head>
<body>
    <nav>
        <ul>
            <li><a href="/">首页</a></li>
            <li><a href="/about">关于</a></li>
        </ul>
    </nav>
    
    <div class="content">
        {% block content %}{% endblock %}
    </div>

    <footer>&copy; 2023 My Website</footer>
</body>
</html>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20

扩展基本模板

在其他页面的模板中,您可以使用{% extends 'base.html' %}来扩展基本模板,并使用{% block %}标记来定义特定页面的内容。

{% extends 'base.html' %}

{% block title %}关于我们{% endblock %}

{% block content %}
    <h1>关于我们</h1>
    <p>这是关于我们页面的内容。</p>
{% endblock %}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

使用模板继承,您可以轻松创建具有一致外观的多个页面,同时减少重复的HTML代码。

这些章节涵盖了Flask框架中模板渲染的基础知识,从模板引擎的概念到使用Jinja2创建模板、传递数据和使用模板继承来实现一致的页面布局。随着实践的深入,您将能够创建出精美而功能强大的Web应用程序。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小蓝xlanll/article/detail/191415
推荐阅读
相关标签
  

闽ICP备14008679号