Лучшая практика - Джанго мультисайт - PullRequest
4 голосов
/ 08 декабря 2010

В настоящее время я ищу «лучший метод» для создания определенной структуры для моей установки Django с несколькими сайтами и поддоменами.

Я думал о следующем:

/ статический /Глобальный - глобальный JS - глобальный css, - так далее.. /конкретный - конкретные JS - и т. д.

/ Джанго - содержит все конкретные файлы Django /Программы - содержит все приложения / site1 - .py файлы - конкретные приложения (ссылка на / django / apps / app) - другие файлы, специфичные для сайта / site2 - .py файлы - конкретные приложения (ссылка на / django / apps / app) - другие файлы, специфичные для сайта /subdomain.site2 - .py файлы - конкретные приложения (ссылка на / django / apps / app) - другие файлы, специфичные для сайта

Я думаю, что вышеупомянутое вполне разумно, чтобы сохранить весь сайт, и в меньшей степени также субдомены отделены друг от друга. Я знаю, что это «лучшая практика», но некоторые (критические) советы будут оценены;)

1 Ответ

1 голос
/ 08 марта 2011

Я думаю, это зависит от того, как вы собираетесь создавать и развертывать свой многодоменный «сайт».У Django есть структура сайтов: http://docs.djangoproject.com/en/dev/ref/contrib/sites/, которая позволяет вам реализовать упомянутый вами «обмен новостными статьями».

Но развертывание многодоменного django не тривиально, если вы хотите, чтобы все они использовалиотдельный процесс (с mod_wsgi у вас есть, например, элемент виртуального хоста для каждого), и это может стать проблемой, если у вас много доменов / поддоменов.

Для стандартного способа развертывания django, каждый проект django (1 на домен) будет иметь свой собственный virtualenv (или совместно использовать один, если они используют одни и те же библиотеки), и все библиотеки apps будут находиться в пути python для virtualenv.

Каждый проект должен быть автономным, поэтому вы должны иметь, например:

project1

- coreapps/projectspecificapps...

- шаблоны /

- media /

- settings.py

- urls.py

- manage.py

project2

- coreapps / projectspecificapps ..

- templates /

--media /

- settings.py

- urls.py

- manage.py

Все, что совместно используется проекты должны быть отделены от проекта и должны быть самостоятельным приложением в любом месте пути Python (например, в virtualenv).

Для многих доменов / поддоменов ... это целоедругая история.Вы можете сделать так, чтобы django обрабатывал доменную часть с помощью промежуточного программного обеспечения django (или, возможно, промежуточного программного обеспечения wsgi? - там может быть интересное решение с использованием wsgi), и вам нужно было бы сделать так, чтобы ваши приложения, шаблоны и т."каким-то образом это зависит от ваших конкретных потребностей.

http://www.b -list.org / weblog / 2006 / sep / 10 / django-tips-lay-out-application /

Django и организация проекта / приложения

и посмотрите на популярные приложения, чтобы увидеть, как они используются: http://djangopackages.com/

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