Mako 是高性能 Python 模板库,支持变量插入 ${}、逻辑控制 %、模板继承与文件加载,通过 Template 和 TemplateLookup 渲染动态内容,自动转义 HTML 防 XSS,可结合 markup 输出原始 HTML,适用于 Flask 等 Web 框架。
Mako 是一个高性能的 Python 模板库,常用于 Web 开发中生成动态 HTML、XML 或其他文本内容。它语法简洁,支持嵌套模板、继承、变量替换和逻辑控制,适合与 Flask、Django 或其他框架集成。
使用 pip 安装:
pip install Mako你可以直接用字符串创建模板并渲染数据:
from mako.template import Templatetemplate = Template("Hello, ${name}!") print(template.render(name="Alice"))
输出:
Hello, Alice!${} 用于插入变量,Mako 会自动转义 HTML 特殊字符(可关闭)。
实际项目中通常将模板保存在文件中。
1. 创建目录 templates,新建文件 hello.html:
No items found.
% endif2. 在 Python 中加载并渲染:
from mako.lookup import TemplateLookupmylookup = TemplateLookup(directories=['templates'])
template = mylookup.get_template("hello.html")
print(template.render(name="Bob", items=["Apple", "Banana"]))
通过继承实现页面结构统一。
1. 创建基础模板 base.html:
Default Title
2. 创建子模板 home.html 继承 base.html:
Home Page
Welcome, ${name}!
3. 渲染:
template = mylookup.get_template("home.html") print(template.render(name="Charlie"))from markupsafe import Markup
基本上就这些。Mako 上手快,功能强,适合需要灵活控制输出的场景。