推荐答案
在 Flask 中配置模板引擎非常简单,Flask 默认使用 Jinja2 作为模板引擎。你只需要在 Flask 应用中设置模板文件夹的路径即可。以下是一个基本的配置示例:
-- -------------------- ---- ------- ---- ----- ------ ------ --------------- --- - --------------- ---------------------------- --------------- --- -------- ------ ----------------------------- -- -------- -- ----------- -------------------
在这个示例中,template_folder='templates'
指定了模板文件的存放路径为项目根目录下的 templates
文件夹。你可以根据需要更改这个路径。
本题详细解读
1. 默认模板引擎
Flask 默认使用 Jinja2 作为模板引擎。Jinja2 是一个功能强大且灵活的模板引擎,支持模板继承、宏、过滤器等功能。你不需要额外安装 Jinja2,因为 Flask 已经内置了对它的支持。
2. 配置模板文件夹
在创建 Flask 应用时,可以通过 template_folder
参数指定模板文件夹的路径。如果不指定,Flask 会默认在项目根目录下寻找名为 templates
的文件夹。
app = Flask(__name__, template_folder='templates')
3. 渲染模板
在视图函数中,可以使用 render_template
函数来渲染模板。render_template
函数会从指定的模板文件夹中查找模板文件,并将其渲染为 HTML 响应。
@app.route('/') def index(): return render_template('index.html')
4. 自定义模板引擎
虽然 Flask 默认使用 Jinja2,但你也可以通过自定义模板引擎来替换它。例如,你可以使用 Mako 或 Django 模板引擎。不过,这需要额外的配置和安装相应的库。
from flask import Flask from flask_mako import MakoTemplates app = Flask(__name__) mako = MakoTemplates(app)
5. 模板文件路径
模板文件的路径是相对于 template_folder
的。例如,如果你的模板文件夹是 templates
,而模板文件位于 templates/subdir/index.html
,那么在视图函数中应该这样引用:
@app.route('/') def index(): return render_template('subdir/index.html')
6. 模板缓存
在生产环境中,Flask 会自动缓存模板以提高性能。你可以在开发环境中通过设置 TEMPLATES_AUTO_RELOAD
配置项来禁用模板缓存,以便在修改模板时自动重新加载。
app.config['TEMPLATES_AUTO_RELOAD'] = True
通过以上配置,你可以在 Flask 中轻松使用和配置模板引擎。