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

Интеграция с унаследованными веб приложениями

Существует возможность выполнения Django приложений на том же веб сервере, на котором работает приложение, основанное на другой технологии. Наиболее прямолинейным способом решения такой задачи является использование конфигурационного файла Apache, httpd.conf, для определения какие URL с помощью какой технологии обрабатывать. (Следует отметить, что глава «Развёртывание Django» описывает процесс установки приложения на Apache, имеет смысл прочитать сначала тот раздел перед попыткой такой интеграции.)

Решение заключается в том, что Django будет использоваться для определённого шаблона URL только если так будет сказано в httpd.conf. Стандартная установка на сервер, описанная в главе «Развёртывание Django», предполагает, что Django поддерживает целый домен:

<Location "/">
    SetHandler python-program
    PythonHandler django.core.handlers.modpython
    SetEnv DJANGO_SETTINGS_MODULE mysite.settings
    PythonDebug On
</Location>

Здесь, строка <Location "/"> означает «обрабатывать каждый URL, который начинается от корня домена».

Удобно ограничивать эту директиву определённым каталогом. Например, у вас есть унаследованное PHP приложение, которое поддерживает множество страниц текущего домена и вы желаете установить интерфейс администратора Django в каталог /admin/ без влияния на PHP приложение. Для этого, следует определить директиву <Location> для /admin/:

<Location "/admin/">
    SetHandler python-program
    PythonHandler django.core.handlers.modpython
    SetEnv DJANGO_SETTINGS_MODULE mysite.settings
    PythonDebug On
</Location>

После этого, только URL, которые начинаются с /admin/ будут обрабатываться Django. Остальные страницы будут использовать ранее существовавшую инфраструктуру.

Следует отметить, что подключение Django к ограниченному URL никак не влияет на внутренний процесс Django, который обрабатывает URL. Django работает с абсолютным URL (т.е., /admin/people/person/add/), а не «урезанную» версию URL (т.е., /people/person/add/). Это означает, что корневая схема URL должна содержать ведущий /admin/.


Ищем 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