Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimana untuk Merujuk Pembolehubah Templat dengan Betul dalam Ungkapan Jinja `url_for()`?

Bagaimana untuk Merujuk Pembolehubah Templat dengan Betul dalam Ungkapan Jinja `url_for()`?

Patricia Arquette
Patricia Arquetteasal
2024-12-07 14:09:15917semak imbas

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

Merujuk Pembolehubah Templat dalam Ungkapan Jinja: Penyelesaian

Artikel ini menangani isu biasa yang dihadapi apabila cuba membenamkan pembolehubah templat dalam ungkapan Jinja untuk Penjanaan URL menggunakan url_for().

The Masalah:

Templat Jinja2 membenarkan penggunaan ungkapan yang disertakan dalam pendakap kerinting berganda ({{ ... }}). Walau bagaimanapun, apabila cuba memasukkan pembolehubah templat dalam fungsi url_for(), pengguna mungkin menghadapi ralat sintaks jika mereka menyusun pendakap kerinting tambahan:

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

Penyelesaian:

Kunci untuk menyelesaikan isu ini adalah dengan membuang pendakap kerinting bersarang yang tidak diperlukan. Ungkapan Jinja sudah dianggap seperti Python, jadi tidak perlu kurungan lanjut melampirkan pembolehubah templat.

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

Dalam kod terlaras ini, filename=name memberikan nilai pembolehubah templat nama kepada nama fail parameter laluan moremagic.

Nota Tambahan:

Ia penting untuk ambil perhatian bahawa url_for() memerlukan nama titik akhir, bukan laluan URL itu sendiri. Dalam contoh yang diberikan, nama titik akhir adalah moremagic, yang lalai kepada nama fungsi jika tidak ditakrifkan dengan jelas.

Atas ialah kandungan terperinci Bagaimana untuk Merujuk Pembolehubah Templat dengan Betul dalam Ungkapan Jinja `url_for()`?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn