Categories: Flask 中文教程

Flask 某个模板引擎

Flask 在模板引擎上做了决定: Jinja2 。为什么 Flask 没有一个即插的模板引擎
接口?显然,你可以使用一个不同的模板引擎,但是 Flask 仍然会为你配置
Jinja2 。虽然 Jinja2 总是 配置的限制可能会消失,但绑定一个模板引擎并使用
的决策不会。

模板引擎与编程语言类似,每个模板引擎都有特定的理解事物工作的方式。表面上,
它们以相同方式工作:你给引擎一个变量的集合让它为模板求值,并返回一个字符
串。

然而,关于相同点的论述结束了。例如 Jinja2 有一个全面的过滤器系统,一个可靠
的模板继承方式,可以从模板内和 Python 代码内使用复用块(宏)的支持,对所有
操作使用 Unicode,支持迭代模板渲染,可配置的语法等等。其它的引擎,一个类似
Genshi——基于 XML 流求值的引擎,模板继承要考虑 XPath 可用性等等。而 Mako 像
对待 Python 模块一样处理模板。

当把一个模板引擎跟一个应用或框架联系到一起,就不只是渲染模板了。比如,
Flask 使用 Jinja2 全面的自动转义支持。同样,也提供了从 Jinja2 模板中
访问宏的途径。

不去掉模板引擎的独特特性的模板抽象层是一门对自身的科学,也是像 Flask
的微框架的巨大事业。

此外,扩展也可以简易地依赖于一个现有的模板语言。你可以简单地使用你自己的
模板语言,而扩展会始终依赖于 Jinja 本身。

andy

前端小白,在Web176教程网这个平台跟大家一起学习,加油!

Share
Published by
andy

Recent Posts

聊聊vue3中的defineProps

在Vue 3中,defineP…

1 周 ago

在 Chrome 中删除、允许和管理 Cookie

您可以选择删除现有 Cooki…

2 周 ago

自定义指令:聊聊vue中的自定义指令应用法则

今天我们来聊聊vue中的自定义…

3 周 ago

聊聊Vue中@click.stop和@click.prevent

一起来学下聊聊Vue中@cli…

4 周 ago

Nginx 基本操作:启动、停止、重启命令。

我们来学习Nginx基础操作:…

1 月 ago

Vue3:手动清理keep-alive组件缓存的方法

Vue3中手动清理keep-a…

1 月 ago