Sie haben einige Optionen.
1) Ändern Sie die Trennzeichen-Notation für Angular:
var app = angular.module('Application', []);
app.config(['$interpolateProvider', function($interpolateProvider) {
$interpolateProvider.startSymbol('{a');
$interpolateProvider.endSymbol('a}');
}]);
Was auch immer für die Start- und End-Symbole gewählt werden als die neuen Trennzeichen handeln. In diesem Fall würden Sie eine Variable mit {a some_variable a}
an Angular ausgeben.
Dieser Ansatz hat den Vorteil, dass er nur einmal gesetzt und explizit sein muss.
2) Ändern Sie die Trennzeichenschreibweise für Jinja2.
außer Kraft setzen oder Unterklasse Flask.jinja_options.update
auf das Flask
Objekt, das Sie an Ihre Anwendung binden (relevant Vars: block_start_string
, block_end_string
, variable_start_string
, variable_end_string
, comment_start_string
, comment_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
Da es ein höheres Risiko von sensiblen Daten ist Da ich von der Serverseite her unausgedehnt bin, empfehle ich stattdessen, die Syntax am Frontend (dh Angular) in jedem Projekt zu ändern, in dem Sie nicht der einzige Entwickler sind.
3) Ausgang a raw block in Jinja2 {% raw %}
oder {% verbatim %}
Verwendung:
<ul>
{% raw %}
{% for item in seq %}
<li>{{ some_var }}</li>
{% endfor %}
{% endraw %}
</ul>
4) Verwenden Jinja2 die geschweiften Klammern in der Vorlage zu schreiben:
{{ '{{ some_var }}' }}
dieser Ausgang als {{ some_var }}
wird in das HTML.
Meine Präferenz für Ansatz # 1 ist offensichtlich, aber einer der oben genannten funktioniert.