Basic usage
Variable x has content: ${x}
Expression: ${x + 1}
Escaped for HTML: ${x | h}
Control structures
% for x in range(5):
% if x % 2 == 0:
${x} is even!
% else:
${x} is odd!
% endif
% endfor
Including Python code
<%
greeting = "Hello world!"
# arbitrary python code
%>
<%!
# arbitrary python code run at toplevel
# cannot access variables!
def sign_string(number):
if number > 0:
return "positive"
elif number < 0:
return "negative"
else:
return "zero"
%>
Special blocks
<%text filter="h">
This is a raw block where ${nothing is evaluated}
<%
not even this
%>
and <html is escaped> too with "h" filter
</%text>
<%def name="myfunc(x)">
this is a reusable macro, with arguments: ${x}
</%def>
${myfunc(42)}
<%doc>
this is a comment
</%doc>
Inheritance
shared.html
<html>
<head>
<title><%block name="title" /></title>
</head>
<body>
<header><h1><%block name="title" /></h1></header>
<main>${self.body()}</main>
</body>
</html>
home.html
<%inherit file="shared.html" />
<%block name="title">Welcome to my site</%block>
This is the body
article.html
<%inherit file="shared.html" />
<%block name="title">${post.title}</%block>
${post.content}
Library
Basic usage
from mako.template import Template
mytemplate = Template("hello, ${name}!")
print(mytemplate.render(name="jack"))
0 Comments for this cheatsheet. Write yours!