Django, поддержка динамических приложений - PullRequest
4 голосов
/ 17 сентября 2010

Я собираюсь начать проект django, где мне нужно базовое развертывание, скажем, только для администраторов.Более поздние администраторы могут добавлять экземпляры моего основного общедоступного сайта.

Теперь один экземпляр, очевидно, будет разделен динамическими поддоменами.Мне нужно захватывать субдомены из запросов и вычислять соответственно.Он имеет свои собственные базовые шаблоны, статические файлы и т. Д. ( самая простая часть ).Это будет набор приложений (общих для всех экземпляров, но не данных в их моделях).И я думаю об использовании поддержки нескольких баз данных Django1.2 и пытаюсь получить один дБ на экземпляр (* добавление динамически :(, если это возможно, оно будет включать динамические создания БД / модели *). Или я могу пойти на добавлениеэкземпляр foreign_key во всех моделях приложений с возможностью мгновенного их разделения.

Если бы мои экземпляры были известны до развертывания, я бы легко использовал поддержку нескольких баз данных, захватив субдомены и перенаправив мои вызовы ORM.к заинтересованным базам данных. Но это не так. Они должны быть динамическими (добавляются по мере необходимости).

Теперь, прежде чем я попробую, чтобы найти решение / избавиться от заблуждений по этому поводу, я быЯ хочу, чтобы эксперты SO думали об этом. Я был бы признателен за предложения, идеи и, конечно, критику.

Я могу сделать это вики-сообществом, если это будет предложено. Спасибо, ребята.

Ответы [ 2 ]

1 голос
/ 25 сентября 2010

Разве вы не должны просто запустить отдельный экземпляр Django в каждом своем Apache VirtuaHost? Затем у вас может быть файл настроек Django для каждого экземпляра, и каждый из них может указать свою базу данных. Это также упрощает ваш код, потому что вам не нужно сопоставлять имена поддоменов с базами данных внутри ваших представлений. В качестве реального бонуса ваш код можно использовать повторно, поскольку он не зависит от ваших сложных настроек.

0 голосов
/ 17 сентября 2010

Обычно вы можете создавать экземпляры своего приложения с помощью frameworks .

...