Django: включить внешние файлы включения - PullRequest
2 голосов
/ 07 сентября 2011

Я создаю веб-приложение, которое станет частью существующего статического веб-сайта. Я бы предпочел использовать верхний и нижний колонтитулы текущего сайта, которые являются статическими .inc-файлами включения.

Есть ли способ включить эти файлы что-то вроде:

{% include 'http://www.mysote.com/inc/footer.inc'%}

1 Ответ

2 голосов
/ 07 сентября 2011

Нет встроенного способа сделать это в Django, но было бы очень легко написать собственный тег шаблона (есть неплохой шанс, что кто-то уже написал такую ​​вещь, хотя быстрый поиск не помог).не включай это для меня).Если вы хотите пойти по этому пути, вы можете сделать это с быстрым simple_tag (задокументировано здесь: https://docs.djangoproject.com/en/1.3/howto/custom-template-tags/#shortcut-for-simple-tags). Это может быть так просто, как что-то вроде:

def include_external(url):
    import urllib2
    return urllib2.urlopen(url).read()

register.simple_tag(include_external)


{% include_external 'http://....' %}

Однако, какУманг упомянул, что это потенциально проблематично - выборка включающего файла, вероятно, значительно увеличит время загрузки вашей страницы, и вы гарантируете, что сбой в вашем статическом сайте также приведет к отключению вашего приложения Django. Если что-то из этого получитсяНе беспокойтесь, вы могли бы взглянуть на кэширование заголовка - однако это добавляет дополнительную сложность, и вам лучше просто копировать файл заголовка при каждом его обновлении.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...