类似于jinja2 / python / django的百里香“天然模板”的模板解决方案?

Nik*_*ntz 5 python django google-app-engine templates jinja2

我用 我对此很满意,这仅仅是我想与负责CSS和HTML的前端程序员合作而不强迫他运行整个堆栈。

理想的模板应该是在不使用后端时呈现虚拟数据而不是动态数据的模板,以便设计人员可以仅使用浏览器及其开发环境来处理图形和布局。

Java具有模板引擎,即使它们具有从后端和框架获取数据的标签,它们也可以将模板呈现为纯html。

jinja2,django或python是否有类似的东西?

lob*_*obi 1

我想说不,Python 中没有与 thymeleaf 等效的东西。正如 Alex R 提到的,维基百科将 jina2 列为自然模板引擎。仅从语法角度来看这是正确的,但对于您所描述的用例而言并非如此。

以下 jinja2 HTML 模板是有效的 HTML:

<!DOCTYPE html>
<html>
  <head>
    <title>{{ variable|escape }}</title>
  </head>
  <body>
    <h1>List of elements</h1>
    <ol>
  {%- for item in item_list %}
      <li>{{ item }}{% if not loop.last %},{% endif %}</li>
  {%- endfor %}
    </ol>
  </body>
</html>
Run Code Online (Sandbox Code Playgroud)

但它会在浏览器中显示所有 jinja2 部分:

元素列表

    {%- 对于 item_list % 中的项目}
  1. {{ item }}{% if not loop.last %},{% endif %}
  2. {%- % 结束}

对于前端开发人员来说,这可能不如 thymeleaf 中的等效结果那么方便:

<!DOCTYPE html>
<html>
  <head>
    <title data-th-text="#{page.title}">Dummy Title</title>
  </head>
  <body>
    <h1>List of elements</h1>
    <ol data-th-each="item : ${items}">
      <li data-th-text="${item}">Dummy Element</li>
    </ol>
  </body>
</html>
Run Code Online (Sandbox Code Playgroud)

结果:

元素列表

  1. 虚拟元素