将Jinja2 MemcachedBytecodeCache与Django一起使用
如果这个答案很明显,我很抱歉,但我似乎不知道如何在Django中启用Jinja2的MemcachedBytecodeCache(我使用的是3.0版,但通常也是)。使其听起来像是一个相对简单的设置: 类jinja2.MemcachedBytecodeCache(客户端,前缀='jinja2/bytecode/',超时=None,忽略\u memcache\u errors=True) 此类实现了一个字节码缓存,该缓存使用memcache缓存来存储信息。它不强制执行特定的memcache库(tummy的memcache或cmemcache),但会接受提供所需最小接口的任何类将Jinja2 MemcachedBytecodeCache与Django一起使用,django,django-templates,jinja2,Django,Django Templates,Jinja2,如果这个答案很明显,我很抱歉,但我似乎不知道如何在Django中启用Jinja2的MemcachedBytecodeCache(我使用的是3.0版,但通常也是)。使其听起来像是一个相对简单的设置: 类jinja2.MemcachedBytecodeCache(客户端,前缀='jinja2/bytecode/',超时=None,忽略\u memcache\u errors=True) 此类实现了一个字节码缓存,该缓存使用memcache缓存来存储信息。它不强制执行特定的memcache库(tumm
显然,我们的目标是使用Memcached启用Jinja的字节码缓存,这在我的站点上已经启用了。我们将非常感谢您在这些环境中提供的任何帮助。谢谢大家! 要使用字节码缓存,请实例化它并将其传递给环境:
from django.core.cache import cache
from jinja2 import Environment, MemcachedBytecodeCache
def environment(**options):
bcc = MemcachedBytecodeCache(cache._cache, prefix='jinja2_bytecode_', timeout=3600, ignore_memcache_errors=True)
env = Environment(trim_blocks=True, lstrip_blocks=True, bytecode_cache=bcc, **options)
return env
将此代码放在基本目录的jinja2_setup.py中,并在settings.py中实例化环境:
TEMPLATES = [
{'BACKEND': 'django.template.backends.jinja2.Jinja2',
'DIRS': [os.path.join(BASE_DIR, 'jinja2'), ],
'APP_DIRS': True,
'OPTIONS': {'environment': "jinja2_setup.environment", }
},
]
你能提供更多关于这是如何工作的上下文吗?例如,如何调用environment(),此代码位于何处?