ich auf einem Web-Projekt arbeiten, Python und Kolben verwenden. Ich habe mich nur gefragt, ob ich auf Parameter zugreifen kann, die von Python in meinen externen Javascript-Dateien gesendet werden? Es funktioniert gut mit HTML-Dateien oder mit js in HTML-Dateien eingebettet, aber nicht, wenn Javascript extern ist.Verwenden Jinja2 Template-Engine in externen JavaScript-Datei
Siehe unten.
Der Python-Code
@app.route('/index')
def index():
return render_template('index.html', firstArg = 2, secondArg = 3)
Die index.html Code
...
<body>
<p>The first arg is {{firstArg}}.</p>
<script src="index.js"></script>
</body>
...
Und die index.js Datei
window.onload=function(){
console.log('{{secondArg}}');
};
So ist der erste arg in der HTML-Datei korrekt ist, aber das zweite funktioniert nicht in der js-Datei. Der Browser zeigt Unexpected token {
an.
Vielleicht ist es nicht möglich, sie in externen js zu benutzen?
Sonst würde ich brauche die secondArg als Eingangsdaten in HTML einfügen und es innerhalb der js-Datei erhalten, aber es ist nicht sehr sauber.
Wenn jemand helfen kann, danke.
Danke. Ich werde Ihre Lösung mit dem Aufruf der Funktion aus dem HTML übernehmen. Ich habe nur eine Frage, was wäre der Effekt von Routing index.js? Ich verstehe nicht, was du meinst, ich dachte, es wäre nur für Routen und ich kann den Link mit der js-Datei nicht sehen. –
Wenn Sie eine Route hinzufügen, wird flask die GET-Requests für den Parameter der Route behandeln, indem Sie die dekorierte Funktion aufrufen (dh die Funktion nach der 'app.route()'). So können Sie alle Anfragen an 'index.js' abfangen, Berechnungen durchführen und die Template-Engine die JavaScript-Datei wie Ihre HTML-Dateien rendern lassen. PS: Wenn Sie meine Antwort hilfreich finden, würde ich mich freuen Sie akzeptieren. –