Может кто-нибудь указать мне хорошие руководства по использованию django.contrib.sites для нескольких представлений в одной базе данных? - PullRequest
0 голосов
/ 25 февраля 2011

[Предупреждение - питон нуб]

Я прочитал, что могу найти, и запустил сайты с одним "сайтом" в базе данных. Я не уверен, куда идти отсюда. Какова правильная структура папок для кода для второго сайта? Он собирается повторно использовать модели (я полагаю, - СУХОЙ), поэтому предположительно необходимо использовать одни и те же папки приложений, но в документации говорится об этом с использованием разных файлов настроек. Здесь я немного растерялся.

Во-вторых, мне бы очень хотелось узнать, как запустить сервер разработки и как запустить apache для нескольких сайтов.

Заранее спасибо.

Обновление: меня особенно интересует, где настройки варьируются между сайтами - например, один использует аутентификацию для размещения всего логина, а другой нет. Согласно беседе ниже, это означает, что это два отдельных проекта? Они используют одни и те же модели, так как мне следовать DRY?

Моя настоящая ситуация такова:

example1.com - это внутренний инструмент управления проектами - он использует аутентификацию приложений Google, поэтому вы не можете видеть страницы, если вы не прошли аутентификацию в учетной записи Google компании.

Я хочу создать example2.com, который представляет собой вид определенных видов открытых задач (созданных через example1.com), чтобы фрилансеры могли видеть доступные вакансии и запрашивать их. У них нет учетных записей в приложениях Google, поэтому example2.com будет использовать другую аутентификацию.

Обе модели общего доступа (например, «проекты», «задания») и обе должны читать из одной и той же базы данных. Как лучше всего добиться этого в Django? Извините, если это неясно - я пытался сохранить вопрос абстрактным, но именно поэтому я ссылался на различные файлы настроек в своем исходном вопросе.

Ответы [ 2 ]

1 голос
/ 25 февраля 2011

То, что вы пытаетесь выполнить, не предоставляется django, но может быть сделано путем настройки вашего сервера. Вот примеры этого с mod_wsgi или с mod_python

Хотя, это несколько продвинуто. Я бы порекомендовал развернуть пару простых приложений django, а затем попробовать это.

1 голос
/ 25 февраля 2011

Вот мои предпочтительные настройки.

example1.com (с аутентификацией GA) должен обслуживаться Apache (через mod_wsgi) и ссылается на некоторый набор приложений Django, которые используют вашу единственную базу данных.

example2.com также должен обслуживаться тем же Apache (через mod_wsgi) и ссылается на некоторый набор приложений Django, которые используют вашу единственную базу данных.

example1.com - это «Местоположение» в Apache, которое ссылается на «/var/www/example1/example1.wsgi ".Этот файл связан с конкретным example1/settings.py для набора приложений и конфигурации example1.com.

example2.com - это «Расположение» в Apache, которое ссылается на «/ var / www / example1 / example2.wsgi "файл.Этот файл связан с определенным example2/settings.py набором приложений и конфигурацией example2.com.

Некоторые приложения Django могут совместно использоваться в двух местах.Некоторые приложения могут относиться к одному или другому местоположению.

База данных полностью совместно используется двумя местоположениями.


Использование сайтов

Второй сайт созданс тем же кодом, что и на первом сайте.Это не копия или клон.У вас есть одна группа приложений, которые используют одну базу данных.

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

Воспринимаемые пользователем "сайты" отличаются только одной вещью: ключом site, который вы вкладываете в свои модели.

Часто вы будетеиспользуйте Apache для перенаправления различных доменных имен на URL-адреса с помощью ключей «site».

Если вы создаете несколько сайтов, которые не используют один и тот же код, то вы просто создаете много приложений,возможно в разных проектах.

Здесь приведены конкретные варианты использования:

http://docs.djangoproject.com/en/1.2/ref/contrib/sites/#how-django-uses-the-sites-framework

Это ловушка для привязки объектов и функциональности к определенным веб-сайтам, и этоместо для доменных имен и «подробных» имен ваших сайтов на платформе Django.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...