Heim >Backend-Entwicklung >Python-Tutorial >Wie referenziere ich Vorlagenvariablen in Jinja-„url_for()'-Ausdrücken richtig?

Wie referenziere ich Vorlagenvariablen in Jinja-„url_for()'-Ausdrücken richtig?

Patricia Arquette
Patricia ArquetteOriginal
2024-12-07 14:09:15916Durchsuche

How to Properly Reference Template Variables in Jinja `url_for()` Expressions?

Referenzieren von Vorlagenvariablen in Jinja-Ausdrücken: Eine Lösung

Dieser Artikel befasst sich mit einem häufigen Problem, das beim Versuch auftritt, Vorlagenvariablen in Jinja-Ausdrücke einzubetten URL-Generierung mit url_for().

Die Problem:

Jinja2-Vorlagen ermöglichen die Verwendung von Ausdrücken in doppelten geschweiften Klammern ({{ ... }}). Wenn Benutzer jedoch versuchen, eine Vorlagenvariable in die Funktion url_for() einzuschließen, können Syntaxfehler auftreten, wenn sie zusätzliche geschweifte Klammern verschachteln:

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

Die Lösung:

Der Schlüssel zur Lösung dieses Problems besteht darin, die unnötigen geschachtelten geschweiften Klammern zu entfernen. Jinja-Ausdrücke gelten bereits als Python-ähnlich, sodass keine weiteren Klammern erforderlich sind, die die Vorlagenvariable einschließen.

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

In diesem angepassten Code weist filename=name dem Dateinamen den Wert der Namensvorlagenvariablen zu Parameter der Moremagic-Route.

Zusätzlicher Hinweis:

Es ist entscheidend für Beachten Sie, dass url_for() einen Endpunktnamen erfordert, nicht den URL-Pfad selbst. Im bereitgestellten Beispiel lautet der Endpunktname moremagic, der standardmäßig der Funktionsname ist, wenn er nicht explizit definiert ist.

Das obige ist der detaillierte Inhalt vonWie referenziere ich Vorlagenvariablen in Jinja-„url_for()'-Ausdrücken richtig?. 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