Удобное приложение для реализации субдоменов в Django — django-hosts

    django-hosts — полезное приложение от замечательного Jannis Leidel, который входит в состав Django core-developers и курирует большое количество Django-проектов.
    Документацию можно найти на readthedocs.
    Пример установки:
    • Устанавливаем: pip install django-hosts
    • Добавляем 'django_hosts' в INSTALLED_APPS
    • Добавляем 'django_hosts.middleware.HostsMiddleware' в MIDDLEWARE_CLASSES
    • В директории проекта создаем файлик назовем его например hosts.py
    • Примерное содержание hosts.py:
      from django_hosts import patterns, host
      host_patterns = patterns('path.to',
          host(r'api', 'api.urls', name='api'),
          host(r'news', 'news.urls', name='news'),
          host(r'forum', 'forum.urls', name='forum'),
      )

      В соотвтетствии с файлом hosts.py у нас появятся 3 хоста: api.site.com, news.site.com, forum.site.com.
    • В settings.py добавляем: ROOT_HOSTCONF = 'projectname.hosts'

    Не забываем про настройку wildcard субдомена (Хотя не обязательно wildcard — достаточно прописать необходимые. Ну а как все это сделать думаю все знают).

    Upd: Сегодня получил сообщение от Jannis Leidel, в котором он сообщил что django-hosts находится в его списке приложений, которые он хочет предложить включить в Django.
    В версии 1.3 уже добавили его django-staticfiles как django.contrib.staticfiles. Еще было бы просто отлично если бы в Django Добавили еще одно его приложение — django-compressor.
    Метки:
    Поделиться публикацией
    Похожие публикации
    Комментарии 19
    • +7
      Удобная штука, возьму на заметку, спасибо.
      • 0
        Забавно, буквально недавно делал похожую вещь, но огранчился созданием middleware которое просто подменяло request.urlconf, в зависимости от поддомена.
        А эту штуку можно настроить так, чтобы разные urls использовались не только для разных доменов, но и для разных сайтов? Т.е. чтоб api.site.com использовал /apps/api/urls.py, а forum.anothersite.com использовал /apps/forum/urls.py (но при этом api.anothersite.com и forum.site.com были недоступны)?
        • 0
          Больше года назад писали такую же мидлварю и успешно применяем по сей день! =)
          • 0
            Писали) Мидлваря получается гибче и нет зависимости от сторонних предложений, но для кое-каких задач эту штуку тоже вполне можно юзать.
            • +1
              А что вам мешает изменить Middleware этого приложения под себя?
              А если еще и пулл-реквест послать с вашими дополнениями может это и добавят и все будут довольны.
            • +1
              Может заделитесь вашим решением? Вдруг окажется более юзабельным.
              Думаю кому-нибудь окажется полезным!
          • +1
            Как раз сегодня смотрел django-subdomains
          • –7
            Шикарная статья ;) К чему, не понятно…
            • +1
              Посмотри первый комментарий может станет понятно.
              • 0
                Ах, да, как я не заметил. Статья очень подробная, но вот только даже туториалом назвать сложно.
                • +1
                  ну кроме Не забываем про настройку wildcard субдомена все понятно.
              • +1
                Приложение может пригодиться вполне, а вот как для статьи слабовато, тут согласен. Но всё равно спасибо автору ;)
              • +1
                Удобный add-on. Можно использовать.
                • 0
                  Отличная вещь, в закладки.

                  А вот django-compressor в джангу пока немного рановато. Для нетривиальных вещей вроде хранения кеша s3 мне лично пришлось его допиливать

                  • +1
                    Ну как мне кажется таких как ты не мало и добавят django-compressor в Django только тогда, когда он будет устраивать большинство разработчиков.
                    • +1
                      Имеется ввиду что когда он станет обладать таким функционалом чтобы и s3 поддерживалось и многое другое(мне нравится как некоторые подобные приложения умеют еще и css-спрайты делать из картинок)
                      • 0
                        О, пользуясь случаем, можешь ткнуть носом в решение, умеющее автоматом делать спрайты?
                        Я не так давно безрезультатно искал что-то подобное. Конечно, понимаю, что серебряной пули не существует, но… а вдруг? :)
                        • +1
                          Вот одно из них. По крайней мере то, которое я имел ввиду но он много чем не устраивает меня.
                          Лучше посоветую делать самому под свой проект(можно взять за пример этот скрипт) и потом еще получившийся спрайт пропускать через Punypng.

                  Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.