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()¶