2016-10-15 9 views
-3

私はDjangoの初心者です。私はDjango-CMSの基礎をいくつか学びたいと思っていました。私はインストーラによって生成されたデフォルトのテンプレートを編集し始めたとき Django {%block%}説明

は、私は {% block ... %}ブロックがある気づいたが、私は何 block手段または block titleblock contentが何を意味するか、より具体的にどのドキュメントを見つけることができませんでした。

DjangoとDjango-CMSの両方のドキュメントにはこのような説明がありません。これは非常に基本的なものであるという事実を考えると奇妙です。私がblock titleブロックを削除したとき、タイトルが台無しになってしまった。

私が使用している:

  • ジャンゴ1.8.15
  • ジャンゴ-CMS 3.4.1。
+2

[この文書を読む](https://docs.djangoproject.com/en/1.8/ref/templates/language/) – dahrens

+0

@dahrensもう一度それを読んで、私が逃したものを見つけました。私は混乱していると思う、django CMSドキュメントには何も言われていないからだ。ありがとうございました。 –

答えて

1

{% block %} ... stuff {% endblock %}再利用可能なHTML部分(または部分またはブロック)を作成するためのものです。 Djangoでは、Jinja(Jinja2)と呼ばれるサブシステムを使用します。

ここに表示される構文はJinjaに限定されないことに注意してください。その考え方は、プログラミング言語とフレームワークがHTMLパターンをカプセル化するためのコンポーネントを使用するということです。我々はそれらをWeb Templating systemと呼んでおり、時にそれらを「論理的に少ない」と呼ぶ。ループして条件文を実行することはできますが。

Jinja(および他の同様の構文サブシステム)では、blocksは再利用できる部分です。あなたが望むならば、 "マクロ"。 Jinjaにはマクロがあり、出力を生成する方法に影響を与える引数を追加することもできます。

+2

Djangoのテンプレート言語はJinjiaとは別です。最近のバージョンでは、代わりに* Jinjaを使用することもできます。しかし、「ブロック」は両方に存在します。 –

+0

よろしくお願いします。私はそれが分離されたコードか、構文の再実装であれば検証しなかった。 – renoirb