Главная | Архив новостей | Общение | Площадка | Примеры OpenID
Хостинг Django от «Джино»
Оглавление

Загрузка шаблонов

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

Django может загружать шаблоны двумя способами:

  • django.template.loader.get_template(template_name): Метод get_template() возвращает скомпилированный шаблон (объект Template) для указанного шаблона. Если шаблон не существует, вызывается исключение TemplateDoesNotExist.

  • django.template.loader.select_template(template_name_list): Метод select_template() подобен методу get_template(), но принимает список имён шаблонов. Метод возвращает первый существующий шаблон из этого списка. Если ни одного шаблона не существует, вызывается исключение TemplateDoesNotExist.

Как было рассказано в главе «Шаблоны», каждая из этих функций по умолчанию использует параметр TEMPLATE_DIRS при загрузке шаблонов. С технической точки зрения, эти функции делегируют свою работу загрузчику шаблонов.

Некоторые из загрузчиков отключены по умолчанию, но вы можете активировать их, отредактировав параметр TEMPLATE_LOADERS. Этот параметр должен содержать кортеж строк, где каждая строка будет представлять загрузчик. Следующие шаблонные загрузчики поставляются с Django:

  • django.template.loaders.filesystem.load_template_source: Этот загрузчик подгружает шаблоны с файловой системы, учитывая параметр TEMPLATE_DIRS. Этот загрузчик включен по умолчанию.

  • django.template.loaders.app_directories.load_template_source: Этот загрузчик подгружает шаблоны из приложений Django на файловой системе. Для каждого приложения указанного в параметре INSTALLED_APPS, загрузчик ищет каталог templates. Если такой каталог существует, Django ищет шаблоны в нём.

    Это означает, что вы можете хранить шаблоны внутри отдельных приложений, упрощая процесс распространения приложений со стандартными шаблонами. Например, если параметр INSTALLED_APPS содержит ('myproject.polls', 'myproject.music'), то метод get_template('foo.html') будет искать шаблоны по порядку:

    • /path/to/myproject/polls/templates/foo.html

    • /path/to/myproject/music/templates/foo.html

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

    Этот загрузчик включен по умолчанию.

  • django.template.loaders.eggs.load_template_source: Этот загрузчик аналогичен app_directories, но подгружают шаблоны из питонских яиц ;), а не с файловой системы. Этот загрузчик отключен по умолчанию. Если вы используете «яйца» для распространения своих приложений, вам потребуется активировать его.

Django использует загрузчики шаблонов в порядке их определения в параметре TEMPLATE_LOADERS, перебирая их, пока не найдёт подходящий.


Увидели ошибку?
Выделите её мышкой и нажмите
Ctrl-Enter
Обработано:
1049 49 130 71

Версия книги
1.0 2.0
Версия 2.0 в процессе перевода!

Мой луч
Многообразие света

Полезное
Актуальные вакансии, Python работа для python-разработчиков.


Скачать в формате
CHM от 2 сентября

Заказать PDF файл можно через почту, чат, джаббер. Всего 2WMZ. Содержимое точно соответствует содержимому сайта.
Чем чаще заказываете — тем больше перевожу.

Русская группа

на поддержку перевода
Яндекс Яндекс.Деньги Хочу такую же кнопку
Ускорить процесс перевода!
R130494980980
Z425285133788
E112528079659
U327380922061

Книга помогла реализовать:
Проект «Мой луч»
АРМ УФМС.


Мой вебсайт стоит666 337,31 руб

© 2008-2009 Ruslan Popov @ gmail.com Powered by Django 1.1 beta 1 SVN-11114
Главная | Архив новостей | Общение | Площадка | Примеры OpenID