1. ホーム
  2. django

[解決済み] Djangoにおける{% %}と{{ }}について

2022-03-11 22:48:08

質問

Django を勉強しているのですが、今まで見たことのないような特殊文字が2セット出てきました。例題の中で何に使われているかは推測できますが、その範囲がわかりません。

それは

  • {% if registered %}
  • {{ user_form.as_p }}

を追加しました。 if registereduser_form.as_p をコンテキストとして使用します。私が気にしているのは {% %}{{ }} の部分があります。

  • これらは Django でのみ使用されるのですか、それとも Python でも使用されるのですか?
  • それぞれどのような意味ですか?
  • 他に似たような文字の集合はありますか?

解決方法は?

これらは django のテンプレートに現れる特別なトークンです。構文について詳しくは django テンプレート言語リファレンス のドキュメントを参照してください。

{{ foo }} - これはテンプレート内のプレースホルダーで、変数 フー は、ビューからテンプレートに渡されます。

{% %} - テキストがこれらのデリミタで囲まれている場合、何か特別な関数やコードが実行されていることを意味し、その結果がここに置かれることになります。これは、中のテキストがビューからテンプレートに渡されるのではなく、テンプレート言語自体の関数や機能が実行されている場合に使われます(forループやif条件のようなもの)。テンプレート言語の拡張機能を独自に作成することができ、これをテンプレート タグ .

{{ foo|something }} - という構文もあります。これは |something テンプレートフィルタ . の左側の項目の結果を変換するためのものであることが多い。 | 記号を使用します。例えば {{ foo|title }} .

と呼ばれるタグとフィルタについて詳しく説明します。 テンプレートビルトイン のドキュメントを参照してください。

この構文は django 固有のものではありません。Python の他の多くのテンプレート言語 (そして Python 以外のものも) が同様の構文を採用しています。

Python言語には同じ構文がありませんが、その概念として 文字列テンプレート これは、テンプレートエンジンの非常に単純化されたバージョンです。