Cheetah.CacheRegion module¶
Cache holder classes for Cheetah:
Cache regions are defined using the #cache Cheetah directive. Each cache region can be viewed as a dictionary (keyed by cacheRegionID) handling at least one cache item (the default one). It’s possible to add cacheItems in a region by using the varyBy #cache directive parameter as in the following example:
#def getArticle
this is the article content.
#end def
#cache varyBy=$getArticleID()
$getArticle($getArticleID())
#end cache
The code above will generate a CacheRegion and add new cacheItem for each value of $getArticleID().
-
class
Cheetah.CacheRegion.
CacheItem
(cacheItemID, cacheStore)¶ Bases:
object
A CacheItem is a container storing:
- cacheID (string)
- refreshTime (timestamp or None) : last time the cache was refreshed
- data (string) : the content of the cache
-
clear
()¶
-
getData
()¶
-
getExpiryTime
()¶
-
getRefreshTime
()¶
-
hasExpired
()¶
-
renderOutput
()¶ Can be overridden to implement edge-caching
-
setData
(data)¶
-
setExpiryTime
(time)¶
-
class
Cheetah.CacheRegion.
CacheRegion
(regionID, templateCacheIdPrefix='', cacheStore=None)¶ Bases:
object
A CacheRegion stores some CacheItem instances.
This implementation stores the data in the memory of the current process. If you need a more advanced data store, create a cacheStore class that works with Cheetah’s CacheStore protocol and provide it as the cacheStore argument to __init__. For example you could use Cheetah.CacheStore.MemcachedCacheStore, a wrapper around the Python memcached API (http://www.danga.com/memcached).
-
clear
()¶ drop all the caches stored in this cache region
-
getCacheItem
(cacheItemID)¶ Lazy access to a cacheItem
Try to find a cache in the stored caches. If it doesn’t exist, it’s created.
Returns a CacheItem instance.
-
isNew
()¶
-