Има моменти, когато искате да използвате различен шаблон на базата на стойността на една HTTP заявка с глава. Например, различни имена на домейни, различните видове браузъри, или дори препращащата страница. Проектът dynamicloader ви позволява да зададете отделен списък на директории, в които Django трябва да изглежда, шаблони, базирани на стойност от заглавките.
<Силен> Инсталиране
1. Инсталирайте `` dynamicloader`` в Python път.
2. Добавете `` "dynamicloader.middleware.RequestMiddleware", `` `` във вашата настройка MIDDLEWARE_CLASSES``.
3. Добавете `` "dynamicloader.loader.load_template_source", `` в * горнище * на вашата настройка `` TEMPLATE_LOADERS``.
4. Създаване на нова настройка, `` DYN_TEMPLATE_MAP``, в следния формат ::
& Nbsp; & Nbsp; & Nbsp; DYN_TEMPLATE_MAP = {
& Nbsp; & Nbsp; & Nbsp; & Nbsp; & Nbsp; & Nbsp; "HTTP_HEADER1": {
& Nbsp; & Nbsp; & Nbsp; & Nbsp; & Nbsp; & Nbsp; & Nbsp; & Nbsp; & Nbsp; & Nbsp; re.compile ("value1"): ("/ път / до / директория", "/ път / до / directory2",),
& Nbsp; & Nbsp; & Nbsp; & Nbsp; & Nbsp; & Nbsp; & Nbsp; & Nbsp; & Nbsp; & Nbsp; re.compile ("стойност 2"): ("/ път / до / directory3",)
& Nbsp; & Nbsp; & Nbsp; & Nbsp; & Nbsp; & Nbsp; },
& Nbsp; & Nbsp; & Nbsp; & Nbsp; & Nbsp; & Nbsp; "HTTP_HEADER2": {
& Nbsp; & Nbsp; & Nbsp; & Nbsp; & Nbsp; & Nbsp; & Nbsp; & Nbsp; & Nbsp; & Nbsp; re.compile ("value1"): ("/ път / до / directory4",)
& Nbsp; & Nbsp; & Nbsp; & Nbsp; & Nbsp; & Nbsp; }
& Nbsp; & Nbsp; & Nbsp; }
<Силен> Template Карта Примери
Име на домейн Разлики
Този пример позволява отмяната на определени шаблони, основани на името на домейн или поддомейн. При тази конфигурация, Django ще изглежда в `` / път / до / directory`` първата ако `` HTTP_HOST`` включва стойността `` www2``.
& Nbsp; & Nbsp; & Nbsp; DYN_TEMPLATE_MAP = {
& Nbsp; & Nbsp; & Nbsp; & Nbsp; & Nbsp; & Nbsp; "HTTP_HOST": {
& Nbsp; & Nbsp; & Nbsp; & Nbsp; & Nbsp; & Nbsp; & Nbsp; & Nbsp; & Nbsp; & Nbsp; re.compile ("www2"): ("/ път / до / директория",),
& Nbsp; & Nbsp; & Nbsp; & Nbsp; & Nbsp; & Nbsp; },
& Nbsp; & Nbsp; & Nbsp; }
Браузър Разлики
Този пример позволява предоставянето на различни шаблони (или просто специфични такива), базирани на браузъра на потребителя.
& Nbsp; & Nbsp; & Nbsp; DYN_TEMPLATE_MAP = {
& Nbsp; & Nbsp; & Nbsp; & Nbsp; & Nbsp; & Nbsp; "HTTP_USER_AGENT": {
& Nbsp; & Nbsp; & Nbsp; & Nbsp; & Nbsp; & Nbsp; & Nbsp; & Nbsp; & Nbsp; & Nbsp; re.compile ("iPhone | Ipod"): ("/ път / до / директория",),
& Nbsp; & Nbsp; & Nbsp; & Nbsp; & Nbsp; & Nbsp; },
& Nbsp; & Nbsp; & Nbsp; }
Стринг заявка Разлики
Този пример проверява низ заявка да реши кой шаблон за използване според низ заявка (нещата след "?" В URL).
DYN_TEMPLATE_MAP = {
& Nbsp; & Nbsp; & Nbsp; "QUERY_STRING": {
& Nbsp; & Nbsp; & Nbsp; & Nbsp; & Nbsp; & Nbsp; & Nbsp; re.compile ("imreallycool = 1"): ("/ път / до / директория",),
& Nbsp; & Nbsp; & Nbsp; },
}
<силни> Изисквания :
- Python
- Django
Коментари не е намерена