ERB,如果您不熟悉它,则是Ruby On Rails和许多其他Ruby项目使用的模板语言。简而言之,它允许您评估HTML模板中的原始ruby代码并呈现结果。
请考虑以下事项:
#hello.erb
<html>
<body>
<p>Hello, <%= @name %></p>
</body>
<html>
Ruby实例变量@name将被替换并呈现在用户看到的页面上。
现在,Python有一种常见的模板语言,称为Jinja2,它的工作方式几乎相同(主要使用{{ }}
而不是<% %>
s),但是它们之间有一个巨大的区别。二:
ERB允许您使用任何有效的Ruby代码,而Jinja2只有非常有限的Python-esque语言子集,但不是原始Python。
如何使用整个语言而不是有限的子集来使用Python模板化HTML?
答案 0 :(得分:7)
Mako允许编写常规的Python代码块,比如
this is a template
<%
x = db.get_resource('foo')
y = [z.element for z in x if x.frobnizzle==5]
%>
% for elem in y:
element: ${elem}
% endfor
http://docs.makotemplates.org/en/latest/syntax.html#python-blocks