在django模板语法中是通过{{ 变量名 }}的方式来引用变量,这是一种很流行的方式,在vue和angularJs中也是使用这种语法的,但是在用django+vue进行开发时,会遇到模板语法冲突,django的渲染器会把vue的代码中的变量覆盖掉,给我们的开发带来不便。
1.解决方案1
在django1.5以后的版本,给出了解决方法,即使用标签{% verbatim myblock %} {% endverbatim myblock %}
例如:
{% verbatim myblock %}
<span>Message: {{ msg }}</span>
{% endverbatim myblock %}
被此标签包裹的内容,django的模板引擎不会对其进行渲染,从而解决语法冲突的问题。
2.解决方案2
修改Vue的{{ }} 为{[ ]},即通过js代码<script>Vue.config.delimiters = ["{[", "]}"]</script>
使用的时候:
<div id="app1">
{[ message ]}
</div>
这样就解决了django模板语法和vue模板语法冲突的问题