PythonのDjangoフレームワークにおけるテンプレートフラグメントキャッシュの概要

977 ワード

同様にcacheラベルを使用してテンプレートクリップをキャッシュできます.テンプレートの先頭付近に{%load cache%}を追加して、テンプレートアクセスキャッシュラベルを通知します.
テンプレートラベル{%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 %}

この特性はテンプレートの重複を避ける上で非常に有用である.タイムアウト時間を変数に保存し、別の場所で多重化することができます.