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

Bagaimana untuk Merujuk Pembolehubah Templat dengan Betul dalam Fungsi `url_for()` Jinja2?

Linda Hamilton
Linda Hamiltonasal
2024-12-19 16:10:12467semak imbas

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

Merujuk Pembolehubah Templat dalam Ungkapan Jinja

Masalahnya

Pertimbangkan coretan templat Jinja2 berikut:

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

Kod ini cuba menjana URL ke laluan yang ditentukan sebagai:

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

Walau bagaimanapun, URL yang dijana oleh coretan templat adalah tidak betul kerana pembolehubah {{ nama fail }} tidak dirujuk dengan betul dalam fungsi url_for().

Penyelesaian

Untuk menyelesaikan isu ini, set tambahan pendakap kerinting dalam fungsi url_for() mesti dialih keluar. Ini kerana segala-galanya dalam {{ ... }} dalam Jinja2 ialah ungkapan seperti Python, dan oleh itu, ia tidak perlu menggunakan {{ ... }} lain untuk merujuk pembolehubah.

The kod yang diperbetulkan adalah seperti berikut:

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

Di sini, pembolehubah nama dihantar sebagai hujah kepada fungsi url_for() dan nama titik akhir moremagic digunakan bukannya URL laluan.

Atas ialah kandungan terperinci Bagaimana untuk Merujuk Pembolehubah Templat dengan Betul dalam Fungsi `url_for()` Jinja2?. 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