Мне нужно взять четыре html-фрагмента с внешнего веб-сайта и отобразить их в верхнем и нижнем колонтитулах сайта django. Я определенно должен кэшировать их в течение некоторого периода времени.
Первоначально я думал, что нужно использовать urllib2 для чтения http, а затем записать html в файлы на мой сервер. Реализованный с помощью контекстного процессора Django, код проверяет временные метки четырех файлов и, при необходимости, извлекает обновленные версии перед чтением их в переменные шаблона.
Кажется, я превышаю размер переменной шаблона Django для одного из четырех файлов. Это заставило меня использовать readlines () и передать этот файл в шаблон в виде массива.
Существует ли более элегантный способ получения четырех фрагментов HTML с внешнего сайта, их кэширования и передачи в мои шаблоны?
Вот как теперь выглядит мой шаблон base.html:
{{ integration_prehead|safe }}
<head>
{{integration_head|safe }}
...
</head>
{% for l in integration_topper %}{{ l|safe }}{% endfor %}
{{ block content }}{{ endblock content }}
{{ integration_footer|safe }}
prehead.html - это не что иное, как doctype и открывающий тег html. Head.html - это набор javascript и таблиц стилей. Файлы topper.html и footer.html являются самыми большими, и они находятся сверху и снизу страниц. В частности, топпер может меняться каждые 15 минут, поэтому нецелесообразно жестко кодировать его в моих шаблонах.
Topper имеет размер 39 КБ и слишком велик для чтения в одну переменную шаблона Django, следовательно, цикл for.