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
Freigeben: 2024-12-19 16:10:12
Original
417 Leute haben es durchsucht

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:

1

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

Nach dem Login kopieren

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

1

2

3

@app.route('/magic/<filename>')

def moremagic(filename):

    pass

Nach dem Login kopieren

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:

1

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

Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage