class MemcachedBytecodeCache(BytecodeCache): (source)
This class implements a bytecode cache that uses a memcache cache for storing the information. It does not enforce a specific memcache library (tummy's memcache or cmemcache) but will accept any class that provides the minimal interface required. Libraries compatible with this class: - `cachelib <https://github.com/pallets/cachelib>`_ - `python-memcached <https://pypi.org/project/python-memcached/>`_ (Unfortunately the django cache interface is not compatible because it does not support storing binary data, only text. You can however pass the underlying cache client to the bytecode cache which is available as `django.core.cache.cache._client`.) The minimal interface for the client passed to the constructor is this: .. class:: MinimalClientInterface .. method:: set(key, value[, timeout]) Stores the bytecode in the cache. `value` is a string and `timeout` the timeout of the key. If timeout is not provided a default timeout or no timeout should be assumed, if it's provided it's an integer with the number of seconds the cache item should exist. .. method:: get(key) Returns the value for the cache key. If the item does not exist in the cache the return value must be `None`. The other arguments to the constructor are the prefix for all keys that is added before the actual cache key and the timeout for the bytecode in the cache system. We recommend a high (or no) timeout. This bytecode cache does not support clearing of used items in the cache. The clear method is a no-operation function. .. versionadded:: 2.7 Added support for ignoring memcache errors through the `ignore_memcache_errors` parameter.
Method | __init__ |
Undocumented |
Method | dump |
Subclasses have to override this method to write the bytecode from a bucket back to the cache. If it unable to do so it must not fail silently but raise an exception. |
Method | load |
Subclasses have to override this method to load bytecode into a bucket. If they are not able to find code in the cache for the bucket, it must not do anything. |
Instance Variable | client |
Undocumented |
Instance Variable | ignore |
Undocumented |
Instance Variable | prefix |
Undocumented |
Instance Variable | timeout |
Undocumented |
Inherited from BytecodeCache
:
Method | clear |
Clears the cache. This method is not used by Jinja but should be implemented to allow applications to clear the bytecode cache used by a particular environment. |
Method | get |
Return a cache bucket for the given template. All arguments are mandatory but filename may be `None`. |
Method | get |
Returns the unique hash key for this template name. |
Method | get |
Returns a checksum for the source. |
Method | set |
Put the bucket into the cache. |
Undocumented
Parameters | |
client:_MemcachedClient | Undocumented |
prefix:str | Undocumented |
timeout:t.Optional[ | Undocumented |
ignorebool | Undocumented |
Subclasses have to override this method to write the bytecode from a bucket back to the cache. If it unable to do so it must not fail silently but raise an exception.
Parameters | |
bucket:Bucket | Undocumented |
Subclasses have to override this method to load bytecode into a bucket. If they are not able to find code in the cache for the bucket, it must not do anything.
Parameters | |
bucket:Bucket | Undocumented |