Mako 是高性能 Python 模板库,支持变量插入 ${}、逻辑控制 %、模板继承与文件加载,通过 Template 和 TemplateLookup 渲染动态内容,自动转义 HTML 防 XSS,可结合 markup 输出原始 HTML,适用于 Flask 等 Web 框架。

Mako 是一个高性能的 Python 模板库,常用于 Web 开发中生成动态 HTML、XML 或其他文本内容。它语法简洁,支持嵌套模板、继承、变量替换和逻辑控制,适合与 Flask、Django 或其他框架集成。
安装 Mako
使用 pip 安装:
pip install Mako基本用法:渲染简单模板
你可以直接用字符串创建模板并渲染数据:
from mako.template import Templatetemplate = Template("Hello, ${name}!") print(template.render(name="Alice"))
输出:
立即学习“Python免费学习笔记(深入)”;
Hello, Alice!${} 用于插入变量,Mako 会自动转义 HTML 特殊字符(可关闭)。
使用模板文件(推荐)
实际项目中通常将模板保存在文件中。
1. 创建目录 templates,新建文件 hello.html:
Welcome, ${name}!
% if items:-
% for item in items:
- ${item} % endfor
No items found.
% endif2. 在 Python 中加载并渲染:
随缘网络PHP企业网站管理系统V2.0正式发布,该企业网站管理系统采用PHP+MYSQL编写,界面色调风格延续之前1.0版管理系统简洁浅蓝色风格,稍有所变动。变更分类树形目录方式采用jquery库,产品,文章三级无限分类。希望大家能够喜欢。系统中难免有些小问题,希望大家在使用中有什么问题可到本站论坛提出,我们将总结各问题后给予修正并升级。本站再次声明对于免费版系列系统本站不提供QQ电话等技术咨询服
设置模板查找路径
mylookup = TemplateLookup(directories=['templates'])
加载模板
template = mylookup.get_template("hello.html")
渲染
print(template.render(name="Bob", items=["Apple", "Banana"]))
模板继承(Layout 复用)
通过继承实现页面结构统一。
1. 创建基础模板 base.html:
My Site
Default Title
2. 创建子模板 home.html 继承 base.html:
Home Page
Home Content
Welcome, ${name}!
3. 渲染:
template = mylookup.get_template("home.html") print(template.render(name="Charlie"))注意事项与技巧
- 默认开启 HTML 转义,防止 XSS。若需输出原始 HTML,使用 ${markup(raw_html)} 并导入
from markupsafe import Markup - 模板中可用 Python 表达式:${len(items)}、${" ".join(names)}
- 使用 % 开头写 Python 语句,记得写 % endfor、% endif
- 缓存模板提升性能,尤其在生产环境
基本上就这些。Mako 上手快,功能强,适合需要灵活控制输出的场景。










