gpt4 book ai didi

python - 是否可以将 AngularJS 与 Jinja2 模板引擎一起使用?

转载 作者:IT老高 更新时间:2023-10-28 20:25:32 25 4
gpt4 key购买 nike

我有一个 Flask 站点,我想使用 AngularJS JavaScript 框架。不幸的是,分隔符似乎重叠。

如果都依赖于双花括号 ({{ expr }}),如何将 Angular 与 Jinja2 一起使用?有没有可能?

最佳答案

你有一些选择。

1) 更改 Angular 的分隔符符号:

var app = angular.module('Application', []);

app.config(['$interpolateProvider', function($interpolateProvider) {
$interpolateProvider.startSymbol('{a');
$interpolateProvider.endSymbol('a}');
}]);

为开始和结束符号选择的任何内容都将作为新的分隔符。在这种情况下,您可以使用 {a some_variable a} 向 Angular 表达一个变量。

这种方法的优点是只需要设置一次并且是显式的。

2) 更改 Jinja2 的分隔符。

在您绑定(bind)到应用程序的 Flask 对象上覆盖或子类 Flask.jinja_options.update(相关变量:block_start_stringblock_end_stringvariable_start_stringvariable_end_stringcomment_start_stringcomment_end_string):

jinja_options = app.jinja_options.copy()

jinja_options.update(dict(
block_start_string='<%',
block_end_string='%>',
variable_start_string='%%',
variable_end_string='%%',
comment_start_string='<#',
comment_end_string='#>'
))
app.jinja_options = jinja_options

由于从服务器端未扩展敏感数据的风险较高,因此我建议在您不是唯一开发人员的任何项目中更改前端(即 Angular)的语法。

3) 输出一个 raw block在 Jinja2 中使用 {% raw %}{% verbatim %}:

<ul>
{% raw %}
{% for item in seq %}
<li>{{ some_var }}</li>
{% endfor %}
{% endraw %}
</ul>

4) 使用Jinja2在模板中编写花括号:

{{ '{{ some_var }}' }}

这将在 HTML 中输出为 {{ some_var }}

我对方法 1 的偏好很明显,但上述任何方法都可以。

关于python - 是否可以将 AngularJS 与 Jinja2 模板引擎一起使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30362950/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com