Я бы сделал это, используя промежуточное программное обеспечение, например ::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