Общая идея о мульти-сайте

Я хочу реализовать концепцию "Несколько сайтов" в своем проекте, для этого я также изучил официальное руководство по django "Основы сайта " и другие учебники.

Но я немного запутался с того, с чего мне начать, потому что, как указано в документе, используются несколько идентификаторов сайта. Но у меня, как обычно, один. И в некоторых документах есть редактирование в файле HTTPD.conf.

Так что я не понял из документов, с чего мне начать?

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

1 ответ

Решение

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

Модель сайта:

ID | domain             | name
1  | site-a.example.com | John's blog
2  | site-b.example.com | David's blog

BlogArticle:

ID | site_id | title                         | ...
1  | 1       | Some title for John's article | ...
2  | 1       | Another post by John          | ...
3  | 2       | David's blog post             | ...

Как это будет развернуто на веб-сервере? Код вашего блогового приложения одинаков для каждого блога, поэтому вы размещаете его где-то в пути Python, где его могут импортировать установки сайта-a и site-b (обычно вы создаете virtualenv и устанавливаете там приложение блога). Теперь вы создаете две виртуальные сети для обоих доменов - site-a.example.com и site-b.example.com, и для каждого сайта вы создаете отдельный проект django (это больше похоже на профиль сайта, чем на обычный проект). Теперь, как вы знаете, какой проект для какого блога? Вы определяете константу SITE_ID в настройках каждого проекта, указывая на идентификатор сайта для такого блога, и для перечисления всех статей для данного блога вы добавляете свой текущий сайт в условие фильтра.

Другие вопросы по тегам