PythonのDjangoフレームワークにおけるテンプレートフラグメントキャッシュの概要
977 ワード
同様にcacheラベルを使用してテンプレートクリップをキャッシュできます.テンプレートの先頭付近に{%load cache%}を追加して、テンプレートアクセスキャッシュラベルを通知します.
テンプレートラベル{%cache%}は、所与の時間内にブロックの内容をキャッシュします.キャッシュタイムアウト時間(秒)とキャッシュクリップの名前を指定する少なくとも2つのパラメータが必要です.例:
クリップベースのダイナミックコンテンツの複数のコピーをキャッシュしたい場合があります.たとえば、前の例の各ユーザにサイドバーをそれぞれキャッシュしたいとします.これにより、{%cache%}に追加のパラメータを渡してキャッシュクリップを識別するだけです.
1つ以上のパラメータを渡すことも可能です.簡単にパラメータを{%cache%}に渡します.
キャッシュタイムアウト時間は、整数値として解析できる限り、テンプレート変数として使用できます.たとえば、テンプレート変数my_timeout値が600であれば、以下の2つの例は等価である.
この特性はテンプレートの重複を避ける上で非常に有用である.タイムアウト時間を変数に保存し、別の場所で多重化することができます.
テンプレートラベル{%cache%}は、所与の時間内にブロックの内容をキャッシュします.キャッシュタイムアウト時間(秒)とキャッシュクリップの名前を指定する少なくとも2つのパラメータが必要です.例:
{% load cache %}
{% cache 500 sidebar %}
.. sidebar ..
{% endcache %}
クリップベースのダイナミックコンテンツの複数のコピーをキャッシュしたい場合があります.たとえば、前の例の各ユーザにサイドバーをそれぞれキャッシュしたいとします.これにより、{%cache%}に追加のパラメータを渡してキャッシュクリップを識別するだけです.
{% load cache %}
{% cache 500 sidebar request.user.username %}
.. sidebar for logged in user ..
{% endcache %}
1つ以上のパラメータを渡すことも可能です.簡単にパラメータを{%cache%}に渡します.
キャッシュタイムアウト時間は、整数値として解析できる限り、テンプレート変数として使用できます.たとえば、テンプレート変数my_timeout値が600であれば、以下の2つの例は等価である.
{% cache 600 sidebar %} ... {% endcache %}
{% cache my_timeout sidebar %} ... {% endcache %}
この特性はテンプレートの重複を避ける上で非常に有用である.タイムアウト時間を変数に保存し、別の場所で多重化することができます.