いくつかのテンプレート内でhtmlをキャッシュしています。
{% cache 900 stats %}
{{ stats }}
{% endcache %}
低レベルライブラリを使用してキャッシュにアクセスできますか? 例えば
html = cache.get('stats')
テンプレートのキャッシュを細かく制御する必要があります:)
何か案は?みんな、ありがとう!:D
いくつかのテンプレート内でhtmlをキャッシュしています。
{% cache 900 stats %}
{{ stats }}
{% endcache %}
低レベルライブラリを使用してキャッシュにアクセスできますか? 例えば
html = cache.get('stats')
テンプレートのキャッシュを細かく制御する必要があります:)
何か案は?みんな、ありがとう!:D
これは、プロジェクトでテンプレート キャッシュにアクセスする方法です。
from django.utils.hashcompat import md5_constructor
from django.utils.http import urlquote
def someView(request):
variables = [var1, var2, var3]
hash = md5_constructor(u':'.join([urlquote(var) for var in variables]))
cache_key = 'template.cache.%s.%s' % ('table', hash.hexdigest())
if cache.has_key(cache_key):
#do some stuff...
cache
タグの使い方は次のとおりです。
{% cache TIMEOUT table var1 var2 var3 %}
おそらく、空のリストを に渡す必要があるだけですvariables
。したがって、あなたvariables
と cache_は次key
のようになります。
variables = []
hash = md5_constructor(u':'.join([urlquote(var) for var in variables]))
cache_key = 'template.cache.%s.%s' % ('stats', hash.hexdigest())
cache
templatetagのコードを見ると、キーは次のように生成されます。
args = md5_constructor(u':'.join([urlquote(resolve_variable(var, context)) for var in self.vary_on]))
cache_key = 'template.cache.%s.%s' % (self.fragment_name, args.hexdigest())
そのため、キャッシュを直接取得するためにビューに似たようなものを構築できます。この場合、vary_on
パラメーターを使用していないため、に空の引数を使用できますmd5_constructor
。