{% verbatim %} 标签用于阻止模板引擎解析标签内的内容。
主要作用
1. 保护 JavaScript 代码
当 JavaScript 代码中包含与 Django 模板语法冲突的字符时:
<script>
{% verbatim %}
// 这里的 {{ }} 不会被 Django 解析
var user = {{ name }}; // JavaScript 对象
var message = "{{ text }}"; // JavaScript 字符串
{% endverbatim %}
</script>
2. 避免语法冲突
防止 Django 将其他模板语法(如 Vue.js、Angular 等)误解析:
<div id="app">
{% verbatim %}
<!-- Vue.js 模板语法不会被 Django 处理 -->
{{ message }}
<div v-if="seen">现在你看到我了</div>
{% endverbatim %}
</div>
使用示例
不使用 verbatim(有问题):
<script>
// Django 会尝试解析 {{ }},可能导致错误
var data = {{ json_data }}; // 如果 json_data 不存在会报错
</script>
使用 verbatim(推荐):
<script>
{% verbatim %}
// 安全地使用 {{ }} 语法
var template = "{{ name }} - {{ age }}";
var vueApp = new Vue({
data: {
message: 'Hello Vue!'
}
});
{% endverbatim %}
</script>
注意事项
verbatim块内的所有模板标签和变量都不会被处理- 常用于 JavaScript 框架集成
- 保持前端模板语法与 Django 模板共存
这是处理模板语法冲突时非常有用的工具。