pythonのdjangoテンプレートのまとめ
2668 ワード
参照バージョン1.6
1.変数
フォーマット:
variableのようなものならvariable djangoは次のような検索を行います.辞書 クラス属性 クラスメソッド リストのインデックス 辞書は方法よりも優先的に判断されます
変数が存在しない場合は、デフォルトでは空白文字に置き換えられます.
barはテンプレートで文字列定数に解析されます
2.フィルター
フォーマット:
djangoは内蔵のフィルタを提供しています.ここでは変数をカスタマイズすることもできます.
3.ラベル
フォーマット:
よく使われるtagをいくつか並べます
forサイクル
じょうけんけってい
if文にフィルタとオペレータを追加したりtagをカスタマイズしたりできます
4.コメント
フォーマット:
5.テンプレートの継承
親テンプレート:
サブテンプレート:
テンプレートに
djangoがauto-escapingをデフォルトで追加してXSSがキャンセルされないようにすると、
djangoブロックのautoescape
djangoの方法はテンプレートの中でパラメータのテンプレートのデフォルトの文字列の値がautoscapeをしないので、この制御はテンプレートの作者が決定します:
カスタムtagとfilterフォーマットのインポート:
1.変数
フォーマット:
{{ variable }}
.(点)、下線()、アルファベット構成変数variableのようなものならvariable djangoは次のような検索を行います.
変数が存在しない場合は、デフォルトでは空白文字に置き換えられます.
barはテンプレートで文字列定数に解析されます
2.フィルター
フォーマット:
{{ name|lower }}
フィルタはチェーン接続可能であり、例えば{{ text|escape|linebreaks }}
フィルタもパラメータ付きであり、例えば{{ bio|truncatewords:30 }}
フィルタパラメータはスペースがあれば引用符で加算しなければならない.djangoは内蔵のフィルタを提供しています.ここでは変数をカスタマイズすることもできます.
3.ラベル
フォーマット:
{{ list|join:", " }}
開始するtagと終了するtagが必要です.たとえば、{% tag %}
djangoは内蔵のラベルリファレンスを提供します.よく使われるtagをいくつか並べます
forサイクル
{% for athlete in athlete_list %}
- {{ athlete.name }}
{% endfor %}
じょうけんけってい
{% if athlete_list %}
Number of athletes: {{ athlete_list|length }}
{% elif athlete_in_locker_room_list %}
Athletes should be out of the locker room soon!
{% else %}
No athletes.
{% endif %}
if文にフィルタとオペレータを追加したりtagをカスタマイズしたりできます
4.コメント
フォーマット:
{% tag %} ... tag contents ... {% endtag %}
これは単行注釈のみで、複数行注釈が必要な場合はcomment tagを使用する必要があります5.テンプレートの継承
親テンプレート:
{% block title %}My amazing site{% endblock %}
{% block content %}{% endblock %}
サブテンプレート:
{% extends "base.html" %}
{% block title %}My amazing blog{% endblock %}
{% block content %}
{% for entry in blog_entries %}
{{ entry.title }}
{{ entry.body }}
{% endfor %}
{% endblock %}
テンプレートに
{# comment #}
が使用されている場合、親テンプレートのblockの内容を使用する必要がある場合は、{% extends %}
テンプレートのtagを使用して名前を変更しないでください.djangoがauto-escapingをデフォルトで追加してXSSがキャンセルされないようにすると、
{{ block.super }}
のような変数に対してsafeを追加できます.djangoブロックのautoescape
{% autoescape off %}
Hello {{ name }}
{% endautoescape %}
djangoの方法はテンプレートの中でパラメータのテンプレートのデフォルトの文字列の値がautoscapeをしないので、この制御はテンプレートの作者が決定します:
{{variable|safe}}
{{ data|default:"3 < 2" }}
カスタムtagとfilterフォーマットのインポート:
{{ data|default:"3 < 2" }} {# Bad! Don't do this. #}
メモはdjango templatesからまとめられています