Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将Jinja2 MemcachedBytecodeCache与Django一起使用_Django_Django Templates_Jinja2 - Fatal编程技术网

将Jinja2 MemcachedBytecodeCache与Django一起使用

将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

如果这个答案很明显,我很抱歉,但我似乎不知道如何在Django中启用Jinja2的MemcachedBytecodeCache(我使用的是3.0版,但通常也是)。使其听起来像是一个相对简单的设置:

类jinja2.MemcachedBytecodeCache(客户端,前缀='jinja2/bytecode/',超时=None,忽略\u memcache\u errors=True)

此类实现了一个字节码缓存,该缓存使用memcache缓存来存储信息。它不强制执行特定的memcache库(tummy的memcache或cmemcache),但会接受提供所需最小接口的任何类


显然,我们的目标是使用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(),此代码位于何处?