首頁 >後端開發 >Python教學 >如何在 Jinja2 的 `url_for()` 函數中正確引用模板變數?

如何在 Jinja2 的 `url_for()` 函數中正確引用模板變數?

Linda Hamilton
Linda Hamilton原創
2024-12-19 16:10:12388瀏覽

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

在Jinja 表達式中引用模板變數

問題

考慮以下Jinja2 模板片段:

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

考慮以下Jinja2 模板片段:

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

但是,模板片段產生的 URL 不正確,因為在 url_for() 函數中未正確引用 {{ filename }} 變數。

要解決此問題,必須刪除 url_for() 函數中額外的一組花括號。這是因為 Jinja2 中的 {{ ... }} 中的所有內容都是類似 Python 的表達式,因此沒有必要使用另一個 {{ ... }} 來引用變數。
<a href="{{ url_for('moremagic', filename=name) }}">Click to see magic happen</a>

修正後的程式碼如下:

這裡,name 變數作為參數傳遞給 url_for() 函數,並使用端點名稱 moremagic 而不是 URL路徑。

以上是如何在 Jinja2 的 `url_for()` 函數中正確引用模板變數?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn