你可以使用两个HTML模板,如Handlebars和Jinja

Ali*_*ala 9 jinja2 flask handlebars.js ember.js

我正在尝试使用ember.js库在javascript中编写一个应用程序,该库很大程度上依赖于Handlebars模板系统.但是,我正在使用FLASK,它也使用jinja模板系统.

是否可以同时使用两个模板渲染器?或者我需要使用一个而不是另一个.任何有使用flask和ember.js经验的人都知道哪一个可能更容易替换另一个?(也许把手更容易替换Jinja,反之亦然).

Mig*_*uel 10

请注意,这两个模板引擎位于不同的位置.Jinja2将在服务器端运行,Handlebars将在客户端运行.如果需要,您可以在没有干扰的情况下使用它们.

但话说回来,如果你有像ember.js这样的富客户端框架,就没有必要使用服务器端模板.在您的情况下,Flask服务器可能会有通过ajax请求将数据提供回ember.js客户端的路由,因此客户端实际上是模板呈现发生的最佳位置.

  • 最好的网络应用程序(性能最佳)在首次加载时呈现完整的html页面,然后使用客户端呈现来更新它.依靠客户端完全引导初始页面会显着增加页面加载(必须进行后续的ajax调用). (8认同)

Mar*_*son 6

您可以将代码部分标记为{% raw %}告诉 jinja2 忽略它。将您的 handlebars.js 模板包裹在原始标签中,如下所示:

{% raw %}
<script id="foo-template" type="text/x-handlebars-template">
    <p>{{foo}} - {{bar}}</p>
</script>
{% endraw %}
Run Code Online (Sandbox Code Playgroud)