在上一篇中,我们学习了如何在 Flask 中使用模板变量来动态渲染内容,而本篇将深入探讨 模板继承
的概念,以实现代码重用和视图的模块化。模板继承使得我们可以创建一个基础模板,然后在其基础上扩展和修改其他模板,从而避免代码重复,提高维护性。
模板继承的基本概念
在 Flask 中,模板继承允许我们定义一个基本的布局模板(base.html
),然后其他模板可以从这个基本模板继承并扩展其内容。这种方式便于对整体网站风格的统一管理,比如头部、底部或其他常见元素。
创建基础模板
首先,我们需要创建一个基础模板 base.html
,该模板将包括页面的基本结构,比如头部、脚部和主页内容的占位符。
以下是一个简单的 base.html
模板示例:
1 |
|
在这个模板中,我们使用了两个 block
标签分别定义了 title
和 content
的占位符。子模板可以重写这些 block
,从而定制具体页面的内容。
创建子模板
接下来,我们将创建一个关于页面模板 about.html
,它将继承自基础模板 base.html
。你可以在 about.html
中定义特定于该页面的内容,例如:
1 | {% extends "base.html" %} |
在这个示例中,使用 extends
语句指明 about.html
模板继承自 base.html
。然后,我们重写了 title
和 content
的 block
,以提供特定于该页面的信息。
在 Flask 中渲染模板
现在,我们来看看如何在 Flask 应用中渲染这些模板。以下是一个简单的 Flask 应用示例:
1 | from flask import Flask, render_template |
在以上代码中,我们定义了两个路由:/
和 /about
。在 /about
的视图函数中,我们调用 render_template
渲染 about.html
模板。由于 about.html
继承了 base.html
,因此会自动包含基础模板的内容。
结论
模板继承极大地提高了我们在 Flask 应用中的模板管理效率。在大型应用中,使用模板继承可以降低重复代码的数量,同时保持一致性。通过定义合理的基础模板,能够快速构建出复杂的网页结构。
在下一篇中,我们将讨论 表单处理
,并介绍如何使用 Flask-WTF 库来处理和验证表单。接下来我们再深入了解如何创建和处理表单类,实现用户输入的有效管理。