ホームページ > バックエンド開発 > Python チュートリアル > Jinja2 の `url_for()` 関数内でテンプレート変数を正しく参照するにはどうすればよいですか?

Jinja2 の `url_for()` 関数内でテンプレート変数を正しく参照するにはどうすればよいですか?

Linda Hamilton
リリース: 2024-12-19 16:10:12
オリジナル
466 人が閲覧しました

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>
ログイン後にコピー

このコード定義されたルートへの URL を生成しようとしますas:

@app.route('/magic/<filename>')
def moremagic(filename):
    pass
ログイン後にコピー

ただし、{{ filename }} 変数が url_for() 関数内で適切に参照されていないため、テンプレート スニペットによって生成された URL は正しくありません。

解決策

この問題を解決するには、url_for() 関数内の余分な中括弧のセットを削除する必要があります。これは、Jinja2 の {{ ... }} 内のすべてが Python のような式であるため、変数を参照するために別の {{ ... }} を使用する必要がないためです。

修正されたコードは次のとおりです。

<a href="{{ url_for('moremagic', filename=name) }}">Click to see magic happen</a>
ログイン後にコピー

ここでは、name 変数が引数として url_for() 関数に渡され、URL の代わりにエンドポイント名 moremagic が使用されます。パス。

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

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