Можно ли повторно загрузить шаблоны в Django? - PullRequest
0 голосов
/ 01 декабря 2011

Я написал собственный загрузчик шаблонов, и шаблоны могут меняться в течение срока службы сервера.Насколько я понимаю, при первой загрузке шаблона он анализируется в дереве узлов в памяти и после этого кешируется.

Можно ли сделать это кэширование недействительным, введя команду «unload»этот шаблон, чтобы он был загружен в следующий раз?Или мой загрузчик шаблонов позаботится об этом?

Ответы [ 2 ]

2 голосов
/ 01 декабря 2011

Это:

при первой загрузке шаблона он анализируется в дереве узлов в памяти и после этого кэшируется

не соответствует действительности.Шаблоны кэшируются только если вы их попросите.Есть загрузчик шаблонов кэширования , который вы можете включить, но он не включен по умолчанию.

Итак, если вы используете пользовательский загрузчик и не используете его, ответьте на вопросхотите, чтобы они кэшировались, не включайте эту функцию в свой пользовательский загрузчик.

0 голосов
/ 01 декабря 2011

Я почти уверен, что ты делаешь то, чего не хочешь. Тем не менее ...

Способ обойти кеширование - обойти систему загрузчика и загрузить шаблон из файла вручную:

from django.http import HttpResponse
from django.template import Template, RequestContext

# open the template file and save it to a string in memory
template_as_string = open('/path/to/template/file.html').read()

# make any dynamic modifications to your template string here,
# including saving back to file if necessary

# get and render a Django template, return an HttpResponse
template = Template(template_as_string)
return HttpResponse(template.render(context=RequestContext(request, {
    # variables to be sent to the template for rendering
})
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...