前端解决方式一
<!-- 使用 Jinja2 的 raw 标签声明原生代码块,也就是不需要进行后端渲染的代码块。使用 raw 和 endraw 标签把 JavaScript 模板部分标记出来即可 -->
{% raw %}
<script type="text/html" id="temp_status">
{{# if(d.Status == 1){ }}
<span class="layui-badge layui-bg-orange">已启用</span>
{{# }else{ }}
<span class="layui-badge">未启用</span>
{{# } }}
</script>
{% endraw %}
如果是Django框架使用
{% verbatim %}{% endverbatim %}
标签声明原生代码块
前端解决方式二
<!-- 把laytpl的大括号写在jinja2 大括号里面,当做字符串输出,这样就可以完美解决冲突问题了。 -->
<script type="text/html" id="temp_status">
{{ " {{# if(d.Status == 1){ }} " }}
<span class="layui-badge layui-bg-orange">已启用</span>
{{ " {{# }else{ }} " }}
<span class="layui-badge">未启用</span>
{{ " {{# } }} " }}
</script>
后端解决方案
from flask import Flask
app = Flask(__name__)
app.jinja_env.block_start_string = '{%%' # 修改块开始符号
app.jinja_env.block_end_string = '%%}' # 修改块结束符号
app.jinja_env.variable_start_string = '{{{' # 修改变量开始符号
app.jinja_env.variable_end_string = '}}}' # 修改变量结束符号
app.jinja_env.comment_start_string = '##}' # 修改注释开始符号
app.jinja_env.comment_end_string = '##}' # 修改注释结束符号复制代码
以上解决方案来自网络,如有冒犯请联系删除。