次の 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 サイトの他の関連記事を参照してください。