layui模板引擎 (laytpl) 与Flask模板引擎 (jinja2)冲突的问题

前端解决方式一

<!-- 使用 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 = '##}'  # 修改注释结束符号复制代码

以上解决方案来自网络,如有冒犯请联系删除。

  • 4
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

CtrlCV工程师

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值