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

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

Mary-Kate Olsen
Lepaskan: 2024-12-08 04:57:11
asal
969 orang telah melayarinya

How to Properly Reference Template Variables within Jinja `url_for` Expressions in Flask?

Merujuk Pembolehubah Templat dalam Ungkapan Jinja

Dalam aplikasi web Flask, adalah perkara biasa untuk menjana URL secara dinamik menggunakan pembolehubah templat dalam ungkapan Jinja. Walau bagaimanapun, merujuk pembolehubah dalam ungkapan Jinja boleh mencabar, seperti yang ditunjukkan dalam senario berikut:

Pertimbangkan laluan yang ditakrifkan sebagai:

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

< p>Untuk menjana pautan ke laluan daripada templat, anda mungkin mahu menggunakan url_for() seperti this:

<h1>you uploaded {{ name }}</h1>
<a href="{{ url_for('/magic/<filename>') }}">Click to see magic happen</a>
Salin selepas log masuk

Walau bagaimanapun, jika anda perlu memasukkan nilai {{name}} secara dinamik ke dalam URL, pendekatan ini menghasilkan ralat sintaks Jinja2.

Penyelesaian kepada isu ini terletak pada memahami tingkah laku ungkapan Jinja. Di dalam {{ ... }}, semuanya dianggap sebagai ungkapan seperti Python. Oleh itu, anda tidak perlu menggunakan {{ ... }} bersarang untuk merujuk pembolehubah.

<h1>you uploaded {{ name }}</h1>
<a href="{{ url_for('moremagic', filename=name) }}">Click to see magic happen</a>
Salin selepas log masuk

Dalam kod yang diperbetulkan ini, kurungan tambahan di sekeliling ungkapan Jinja dialih keluar dan pembolehubah nama ialah diluluskan sebagai hujah kepada fungsi url_for().

Perhatikan bahawa url_for() memerlukan nama titik akhir, iaitu nama fungsi (moremagic) dalam ini kes. Laluan URL itu sendiri tidak diperlukan.

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

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan