如何像Python中的ERB一样模板?

Mik*_*.K. 6 python jinja2

ERB,如果你不熟悉它,是Ruby On Rails和许多其他Ruby项目使用的模板语言.简而言之,它允许您评估HTML模板中的原始ruby代码并呈现结果.

考虑以下:

#hello.erb
<html>
<body>
  <p>Hello, <%= @name %></p>
</body>
<html>
Run Code Online (Sandbox Code Playgroud)

Ruby实例变量@name将被替换并呈现在用户看到的页面上.

现在,Python有被称为通用模板语言的Jinja2(大多采用几乎相同的方式,其工作在{{ }}s,而不是<% %>多个),但有两个之间有一个很大的不同:

ERB允许您使用任何有效的Ruby代码,而Jinja2只有非常有限的Python-esque语言子集,但不是原始Python.

问题:

如何使用整个语言而不是有限的子集来使用Python模板化HTML?

r-m*_*m-n 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
Run Code Online (Sandbox Code Playgroud)

http://docs.makotemplates.org/en/latest/syntax.html#python-blocks

  • 感谢您在删除人员之前做到这一点.谷歌对这个问题毫无帮助. (2认同)