pythonのdjangoテンプレートのまとめ

2668 ワード

参照バージョン1.6
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からまとめられています