Shshzik
@Shshzik
Начинающий

Как запустить несколько сайтов на одном Django?

Суть проблемы такова. Клиент хочет 5 сайтов, которые будут связаны между собой различными элементами.
Есть 1 "основной" сайт ( просто как сайт визитка ) и 4 других ( как магазины ). При этом у них должна быть общая авторизация, общая корзина.
Так же должен быть реализован следующий функционал:
На "основном" сайте если огромное портфолио. Нужно что бы клиент в админке этого сайта указывал на каких сайтах может выводиться данная работа. Остальные сайты могли это подхватить. Но и сами могли добавить тоже. Тоесть работа должна проводиться со 1 моделью.

Решено было это делать с помощью sites Framework, который есть в django.
Вообщем вот такие вопросы есть:
1) есть ли хоть какие-то похожие примеры решения этой задачи?
2) Как организовывать разделение всех этих сайтов? Все они с разной версткой, своими стилями и т.п.
3) Как организовать структуру проекта? Все должно быть в 1 папке, с разделением на приложения?
4) Как организовать url?
5) как всё это разрабатывать силами runserver? И можно ли вообще это сделать?
  • Вопрос задан
  • 917 просмотров
Пригласить эксперта
Ответы на вопрос 1
@yermocode
Решал пару подобных задач на ruby on rails + passenger, для одной из них было создано грубо говоря 5 rails приложений размещенных на одном сервере (у каждого свой домен), одно из них было "главным" сайтом с личным кабинетом из которого происходило обновление контента на других 4 сайтах, суть была такая: все взаимодействия происходили по API, какие-либо изменения отслеживались с помощью websocket (необходимо было в реальном времени мониторить все активности). Это, если в кратце. Думаю на django построить подобную архитектуру не составит труда. Для другой задачи, необходимо было построить веб-приложение на одном домене, но должен был быть функционал создания n-го кол-ва "отдельных" сайтов с общим личным кабинетом. В этом случае задача была решена с помощью маршрутизации (routes), грубо говоря:

//это был роут на основной сайт
scope module: :mainClient do
    root to: 'index#home'
end

//роуты на остальные "подсайты"
namespace :subSite_1 do
    root to: 'index#home'
end

namespace :subSite_2 do
    root to: 'index#home'
end

в данном случае, каждый "подсайт" включая "главный" имели свои view, style, script. На django не писал но думаю логика от этого сильно не поменяется.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы