поддомены подстановочных знаков в проекте Django - PullRequest
3 голосов
/ 03 августа 2011

кто-нибудь когда-нибудь использовал поддомены в своих приложениях?Мне нужно найти способ «локализовать» мое приложение.Когда я говорю «локализовать», я имею в виду, что любой, кто перейдет на ny.foo.com/items/new/, будет отправлен на просмотр, который просматривает базу данных и ищет новые элементы в Нью-Йорке.Очевидно, мы могли бы заменить Нью-Йорк на любой штат.

Любые советы будут великолепны

Спасибо!

1 Ответ

5 голосов
/ 03 августа 2011

Я бы сделал это, используя промежуточное программное обеспечение, например ::1001 *

class StateCodeMiddleware(object):

   def process_request(self, request):
        bits = request.META['HTTP_HOST'].split('.')
        if len(bits) == 3 and len(bits[0]) == 2:
            request.state_code = bits[0]
        else:
            request.state_code = None
            # Or a redirect to the default state.

И затем в любом из ваших представлений вы можете просто проверить request.state_code и получить новые элементы только для этого состояния.


Редактировать: Для разработки лучшим способом является настройка локального DNS-сервера.Например.dnsmasq очень прост в настройке:

address=/.dev/127.0.0.1 # in dnsmasq.conf

Это указывает *.dev на localhost.Вам также нужно будет настроить свою систему на использование локального DNS-сервера (в системах UNIX вы делаете это, помещая nameserver 127.0.0.1 в /etc/resolve.conf).

В качестве альтернативы, вы можете перечислить все доменные имена в вашем/ etc / hosts, если это конечный набор:

127.0.0.1 ny.localhost, az.localhost  # and so on
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...