Heim >Backend-Entwicklung >Python-Tutorial >Wie referenziere ich Vorlagenvariablen innerhalb der Funktion „url_for()' von Jinja2 korrekt?

Wie referenziere ich Vorlagenvariablen innerhalb der Funktion „url_for()' von Jinja2 korrekt?

Linda Hamilton
Linda HamiltonOriginal
2024-12-19 16:10:12385Durchsuche

How to Correctly Reference Template Variables within Jinja2's `url_for()` Function?

Referenzieren von Vorlagenvariablen in Jinja-Ausdrücken

Das Problem

Betrachten Sie den folgenden Jinja2-Vorlagenausschnitt:

<a href="{{ url_for('/magic/{{ filename }}') }}">Click to see magic happen</a>

Dieser Code versucht, eine URL zu einer definierten Route zu generieren als:

@app.route('/magic/<filename>')
def moremagic(filename):
    pass

Die vom Vorlagen-Snippet generierte URL ist jedoch falsch, da die Variable {{ filename }} in der Funktion url_for() nicht ordnungsgemäß referenziert wird.

Die Lösung

Um dieses Problem zu beheben, muss der zusätzliche Satz geschweifter Klammern in der Funktion url_for() entfernt werden. Dies liegt daran, dass alles innerhalb von {{ ... }} in Jinja2 ein Python-ähnlicher Ausdruck ist und es daher nicht erforderlich ist, ein anderes {{ ... }} zum Referenzieren von Variablen zu verwenden.

Der Der korrigierte Code lautet wie folgt:

<a href="{{ url_for('moremagic', filename=name) }}">Click to see magic happen</a>

Hier wird die Namensvariable als Argument an die Funktion url_for() übergeben und der Endpunktname moremagic anstelle der URL verwendet Pfad.

Das obige ist der detaillierte Inhalt vonWie referenziere ich Vorlagenvariablen innerhalb der Funktion „url_for()' von Jinja2 korrekt?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn