首頁 > 後端開發 > Python教學 > 如何在 Flask 中的 Jinja `url_for` 表達式中正確引用模板變數?

如何在 Flask 中的 Jinja `url_for` 表達式中正確引用模板變數?

Mary-Kate Olsen
發布: 2024-12-08 04:57:11
原創
954 人瀏覽過

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

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

在Flask Web 應用程式中,通常使用Jinja 表達式中的模板變數動態產生URL。然而,引用Jinja 表達式中的變數可能具有挑戰性,如以下場景所示:

考慮定義為以下形式的路由:

@app.route('/magic/<filename>')
def moremagic(filename):
    pass
登入後複製

要從模板產生路由鏈接,您可能需要使用url_for() ,例如this:

<h1>you uploaded {{ name }}</h1>
<a href="{{ url_for('/magic/<filename>') }}">Click to see magic happen</a>
登入後複製

但是,如果您需要動態地將 {{name}} 的值插入到 URL 中,這種方法會導致 Jinja2 語法錯誤。

這個問題的解決方案在於理解 Jinja 表達式的行為。在 {{ ... }} 內部,所有內容都被視為類似 Python 的表達式。因此,不需要使用嵌套的 {{ ... }} 來引用變數。

<h1>you uploaded {{ name }}</h1>
<a href="{{ url_for('moremagic', filename=name) }}">Click to see magic happen</a>
登入後複製

在這個更正的程式碼中,Jinja 表達式周圍的額外括號被刪除,name 變數為作為參數傳遞給 url_for() 函數。

請注意,url_for() 需要端點名稱,在本例中是函數 (moremagic) 的名稱。 URL 路徑本身不是必需的。

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

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板