flask模板中使用Angular如何避免和jinja2冲突

jinja2的模板和Angular都依赖于双花括号({{ expression }}),如何避免这两者的冲突

方法一

前端代码中修改Angular的渲染标记

var app = angular.module("myApp",[])
app.config(['$interpolateProvider', function($interpolateProvider) {
  $interpolateProvider.startSymbol('{[');
  $interpolateProvider.endSymbol(']}');
}]);

这样后面在html中以下面的方式使用Angular

<p>{[ expression ]}</p>

方法二

使用Jinja2的raw屏蔽解析Jinja2渲染

{%raw%}
<p>{{ expression }}</p>
{%endraw%}

方法三

在外层增加两个花括号让Jinja2先解析

<p>{{ '{{ expression }}' }}</p>

方法四

在flask中修改Jinja2的渲染标识

app = Flask(__name__)
app.jinja_env.variable_start_string = '%%'
app.jinja_env.variable_end_string = '%%'
发布了70 篇原创文章 · 获赞 56 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/zhangenter/article/details/104134341