ホームページ > バックエンド開発 > Python チュートリアル > Flask の Jinja `url_for` 式内のテンプレート変数を適切に参照するにはどうすればよいですか?

Flask の Jinja `url_for` 式内のテンプレート変数を適切に参照するにはどうすればよいですか?

Mary-Kate Olsen
リリース: 2024-12-08 04:57:11
オリジナル
965 人が閲覧しました

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<p><p></p><pre class="brush:php;toolbar:false"><h1>you uploaded {{ name }}</h1>
<a href="{{ url_for('/magic/<filename>') }}">Click to see magic happen</a>< として定義されたルートを考えます。 p>テンプレートからルートへのリンクを生成するには、次のように url_for() を使用するとよいでしょう。 this:</p></p>
<p></p>
<p><p>ただし、{{name}} の値を URL に動的に挿入する必要がある場合、このアプローチでは Jinja2 構文エラーが発生します。</p>
<pre class="brush:php;toolbar:false"><h1>you uploaded {{ name }}</h1>
<a href="{{ url_for('moremagic', filename=name) }}">Click to see magic happen</a>
ログイン後にコピー
この問題の解決策は、Jinja 式の動作を理解することにあります。 {{ ... }} 内では、すべてが Python のような式として扱われます。したがって、変数を参照するためにネストされた {{ ... }} を使用する必要はありません。

この修正されたコードでは、Jinja 式を囲む余分な括弧が削除され、name 変数は次のようになります。引数として url_for() 関数に渡されます。

url_for() にはエンドポイント名が必要であることに注意してください。これは、この例では関数 (moremagic) の名前です。 場合。 URL パス自体は必要ありません。

以上がFlask の Jinja `url_for` 式内のテンプレート変数を適切に参照するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート