我正在使用Django的模板片段缓存,因此在template.html文件中
{% extends 'base.html' %}
{% load cache %}
{% block content %}
{% cache 500 "myCacheKey" %}
My html here...
{% endcache %}
{% endblock %}
Run Code Online (Sandbox Code Playgroud)
这工作正常 - 我可以看到它正在被缓存和命中但是视图正在做一些昂贵的事情来为这个视图提供数据并且每次都会调用它.
在views.py中
def index(request)
data = api.getSomeExpensiveData()
return render_to_response('template.html', {'data':data} )
Run Code Online (Sandbox Code Playgroud)
那么在调用api.getSomeExpensiveData()之前如何判断缓存是否可用?
我不能使用cache.get('myCacheKey'),因为找不到缓存 - 它是否使用了一些命名方案,如果是这样,我可以使用像
cache.get(cache.getTemplateFragmentKey("myCacheKey"))
Run Code Online (Sandbox Code Playgroud)
要么
cache.getTemplateFragment("myCacheKey")
Run Code Online (Sandbox Code Playgroud)