Хостинг Django от «Джино»
Table of contents

Работа в автономном режиме

Замечание

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

Для работы шаблонной системы Django загружает все необходимые данные из своего конфигурационного файла, объединяя их с параметрами проекта, которые указаны в модуле, определённом в переменной среды DJANGO_SETTINGS_MODULE. Но в случае, когда требуется применить шаблонную систему отдельно от Django, использование переменной среды будет не совсем удобно.

Например, мне понадобилось создавать и отправлять своему менеджеру отчёт о проделанной работе. Менеджер мог понимать почтовые сообщения только в формате HTML, почтовое сообщение должно было быть отформатировано определённым образом. Я не мог заставить себя тратить полчаса на заполнение его «портянки». Поэтому был написан небольшой скрипт, который для генерации HTML представления сообщения использовал шаблонную систему Django. Описанное далее, учитывает мой опыт.

Для решения этой задачи потребуется использовать параметры конфигурации, которые описаны в приложении «Параметры конфигурации». Это означает, что переменная среды PYTHONPATH должна указывать на каталог, где развёрнут Django, а также то, что вам необходимо определить соответствующие параметры конфигурации. Можно, конечно, создать скрипт в котором будет определяться переменная среды DJANGO_SETTINGS_MODULE (и, соответственно, потребуется создать файл с настройками, как это происходит в Django приложении), а затем вызываться скрипт. Но лучше сделать следующее (на примере шаблонной системы):

import django
django.conf.settings.configure(TEMPLATE_DIRS = ('/home/rad/devel/cpr_report',))

Через запятую, можно определить столько параметров конфигурации, сколько надо. Среди параметров могут быть такие как TEMPLATE_DIRS (если вам потребуется использовать шаблонные загрузчики), DEFAULT_CHARSET (хотя использование UTF-8 будет достаточным) и TEMPLATE_DEBUG. Все доступные параметры описаны в приложении «Параметры конфигурации», особый интерес представляют параметры, начинающиеся с TEMPLATE_.

Небольшой пример:

import django
from django.template import Context, loader
django.conf.settings.configure(TEMPLATE_DIRS = ('/home/rad/devel/cpr_report',))

template = loader.get_template('cpr_report_template.html')
context = Context({'problems': info_problems or 'нет',
                   'plans': info_plans or 'нет',
                   'done': info_done or 'нет'})
html = template.render(context)


Ищем Python программистов

Found misprint?
Select it with the mouse and hit Enter
Ctrl-Enter
Processed:
33 1 199 25


The full repository of DjangoBook translation you can get on GitHub.
We appreciate your patches!

We are glad to hear your questions, comments or suggestions!
(Open in new tab)

Users number: 601

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

на поддержку перевода
Яндекс Яндекс.Деньги Хочу такую же кнопку
Ускорить процесс перевода!
ЯМ:41001223475816


© 2008-2012 Ruslan Popov @ gmail.com Powered by Django 1.2.5