一般的なテンプレートタグ

一般的なテンプレートタグ

1.if声明

1.すべてのタグ{%%}の間に
タグを終了タグ2.Ifは。です{% endif %}
3.Ifはタグオペレータの判断は、Pythonの演算子は同じと判断されただけのよう。==、!=、<、<=、>、>=、in、not in、is、is notオペレータ等の分析
4も使用することができますelifelse

2. for...in...タグ:

for...in...同様Pythonの中でfor...in...リスト、タプル、文字列、辞書を通過することができますし、すべてのオブジェクトをトラバースすることができます。次のようにサンプル・コードは次のとおりです。

{% for person in persons %}
<p>{{ person.name }}</p>
{% endfor %}

あなたがトラバーサルを逆にしたい場合は、トラバーサルの時間に追加しますreversed次のようにサンプル・コードは次のとおりです。

{% for person in persons reversed %}
<p>{{ person.name }}</p>
{% endfor %}

辞書、使用横断するときitemskeysおよびvalues他の方法を。DTL行う方法括弧の形で使用することができません。次のサンプルコードを横断辞書:

{% for key,value in person.items %}
<p>key:{{ key }}</p>
<p>value:{{ value }}</p>
{% endfor %}

ではfor、サイクル、DTLそれが利用可能な変数の数を提供します。次のようにこれらの変数は以下のとおりです。

  • forloop.counter:現在のループインデックス。開始値として1。
  • forloop.counter0:現在のループインデックス。開始値として0。
  • forloop.revcounter:現在の逆サイクルインデックス値。例えば、リストは、5つの要素を有し、このプロパティを介して初めてように、5に等しい4つの第2、及びです。1と最後の要素の添え字の通りです。
  • forloop.revcounter0:類似forloop.revcounter。違いは、最後の要素の添字がゼロです。
  • forloop.first:それは通じ初めてであるかどうか。
  • forloop.last:それは最後のトラバーサルがあるかどうか。
  • forloop.parentloop:複数のネストされたループがある場合、このプロパティは、forループの上位レベルを表します。

Pythonであるため...で...続けると声明を壊さないテンプレートは、我々は明確に覚えておく必要があり、非常に異なっています!

3. for...in...emptyタグ:

でこのタグを使用してfor...in...同じ、しかし物体がケースの要素が存在しないことを横断している場合、実行するemptyコンテンツを。次のようにサンプル・コードは次のとおりです。

{% for person in persons %}
<li>{{ person }}</li>
{% empty %}
暂时还没有任何人
{% endfor %}

4.withタグ:

1.テンプレートでは、変数を定義したい、できるwith文を実現すること。
2. with2つの方法で使用ステートメント、最初は、with xxx=xxx第二の形でwith xx as xx
形。
変数だけ文で定義します3.文でブロック内で使用されるブロックは、この変数の対象ではありません
サンプルコードは次のとおりです。

    {% with zs=persons.0%}
        <p>{{ zs }}</p>
        <p>{{ zs }}</p>
    {% endwith %}
    下面这个因为超过了with语句块,因此不能使用
    <p>{{ zs }}</p>

    {% with persons.0 as zs %}
        <p>{{ zs }}</p>
    {% endwith %}

5.urlラベルの注意事項:

urlタグ:テンプレートで、私たちはしばしばいくつかの書き込みurlなど、aラベルを定義する必要hrefのプロパティを。もちろん、この直接通じハードコード化された方法であればurl死んで内部を記述することも可能です。しかし、将来のメンテナンスのため、このプロジェクトは良いことではないかもしれません。に似て逆転、達成するためにこの方法を使用することが推奨されて同じことを。次のようにサンプル・コードは次のとおりです。djangoreverse

<a href="{% url 'book:list' %}">图书列表页面</a>

場合はurl、必要にパラメータを渡すときの逆、あなたは後ろに渡すことができます。しかし、パラメータと位置パラメータキーワード引数。位置パラメータとキーワード・パラメータを同時に使用することはできません。次のようにサンプル・コードは次のとおりです。

# path部分
path('detail/<book_id>/',views.book_detail,name='detail')

# url反转,使用位置参数
<a href="{% url 'book:detail' 1 %}">图书详情页面</a>

# url反转,使用关键字参数
<a href="{% url 'book:detail' book_id=1 %}">图书详情页面</a>

あなたが使用したい場合はurlラベルがクエリ文字列パラメータを渡すために反転した場合は、手動で後から追加する必要があります。次のようにサンプル・コードは次のとおりです。

<a href="{% url 'book:detail' book_id=1 %}?page=1">图书详情页面</a>

あなたが複数のパラメータを渡す必要がある場合、それは空白の方法で分離しました。次のようにサンプル・コードは次のとおりです。

<a href="{% url 'book:detail' book_id=1 page=2 %}">图书详情页面</a>

自動的6.autoescapeをエスケープ

  1. うのようなDTLは、これらの特殊文字をエスケープします、自動的にエスケープデフォルトでオンになっている<に逃れる&lt;ようにと。
  2. あなたは何をしているかわからない場合、サイトがXSSの脆弱性の傾向がありませんでしたので、自動DTLエスケープを使用することをお勧めします。
  3. 変数が実際に信頼されている場合は、使用することができますautoescape次のサンプルコードの自動エスケープを無効にするタグ:
        {% autoescape off %}
            {% info %}
        {% endautoescape%}
    

7.verbatimラベル

verbatimタグ:デフォルトDTL。テンプレートは、次のようなこれらの特別な文字を解決するために起こっている{{{%そして、%}あなたはコードを使用したくない場合など。DTLエンジンの解析、そしてあなたがそのコードスニペットを使用することができverbatim、サンプルコード内のタグを次のように

{% verbatim %}
    {{ hello }}
{% endverbatim %}

おすすめ

転載: www.cnblogs.com/ys-python/p/11247392.html