flask jinja2 template 和前端template冲突

问题描述:

小弟用了前端的template.js做模板,从后端获取数据然后渲染,但是在flask里貌似和jinja2模板引擎冲突了。报错截图如下:

clipboard.png

前端code:

<script type="text/html" id="test-js">
    <%for(var system in data){%>
        <ul>system: <%=system%></ul>
    <%}%>
</script>

小弟请教两个问题:

1.如上,怎么解决这个问题。
2.如果我不用flask的template引擎,我想返回html,怎么返回比较好,是read()这个文件,然后return 这个字符串,设置一下text/html的header吗?
阅读 5k
3 个回答

原因找到了,是因为"{"和"%"连在一起和jinja2的某个tag冲突了,所以出现了问题。
正确的代码如下:

<script type="text/html" id="test-js">
    <% for(var system in data){ %>
        <ul>system: <%=system%></ul>
    <% } %>
</script>

用 {% raw %} 和 {% endraw %} 隔离前端的template

在flask的view.py里面
加两行,

app.jinja_env.variable_start_string = '{{{{'
app.jinja_env.variable_end_string = '}}}}'

四个括号也可以改成其他,
用这个代替''{''

参考
http://panmax.love/2016/%E8%A...

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题