解决Flask与Vue.js模板冲突问题
现在主流的Python web框架中,模板的表达式声明都大同小异,常见的有{{ something }}和{% something %}两类,而前者与Vue.js的语法冲突,导致在运行Python(例如Flask)时,Vue语法被Python解析触发报错。
-
对于Flask,解决该问题的方式最简单的就是在Vue实例的DOM外,通过声明raw,表示其中的内容不由flask转义即可解决冲突:
{% raw %} <div> {{vue}} </div> {% endraw %}
-
如果可以改变jinja2模板:
app.jinja_env.variable_start_string = '{[' app.jinja_env.variable_end_string = ']}'
jinjia2模板引擎取值变成{[ ]}
如果只想改变Vue模板,可以这样使用:var app = new Vue({ delimiters:['{[', ']}'] })
Vue取值变成{[ ]}
本作品采用 知识共享署名-相同方式共享 4.0 国际许可协议 进行许可。