UPD: Мы зарелизили более новую версию библиотеки для работы с ipgeobase: django-geoip
Мы начали публиковать свои наработки на гитхабе. Это первая ласточка, приложение форк django-ipgeobase.
На нашем последнем проекте для того, чтобы определять, из какого города посетитель сайта, мы использовали базу адресов от ipgeobase.ru. Она содержит достаточно подробную информацию по России и Украине (886 городов) и регулярно обновляется. Этого оказалось вполне достаточно, чтобы привязать контент сайта к разным регионам России, например.
Для геолокации в Django обнаружилось готовое приложение от Ивана Петухова, которое умело импортировать данные с ipgeobase и определять город и регион по ip. А также хорошй форк от mjr27, добавивший админку и поддержку адресов Украины.
В апреле поменялся формат базы данных на ipgeobase, теперь, чтобы получать актуальные ежедневные обновления, нам пришлось изменить процедуру импорта. Так появился наш собственный форк django-ipgeobase.
Пример использования:
Мы начали публиковать свои наработки на гитхабе. Это первая ласточка, приложение форк django-ipgeobase.
На нашем последнем проекте для того, чтобы определять, из какого города посетитель сайта, мы использовали базу адресов от ipgeobase.ru. Она содержит достаточно подробную информацию по России и Украине (886 городов) и регулярно обновляется. Этого оказалось вполне достаточно, чтобы привязать контент сайта к разным регионам России, например.
Для геолокации в Django обнаружилось готовое приложение от Ивана Петухова, которое умело импортировать данные с ipgeobase и определять город и регион по ip. А также хорошй форк от mjr27, добавивший админку и поддержку адресов Украины.
В апреле поменялся формат базы данных на ipgeobase, теперь, чтобы получать актуальные ежедневные обновления, нам пришлось изменить процедуру импорта. Так появился наш собственный форк django-ipgeobase.
Пример использования:
from django_ipgeobase.models import IPGeoBase
ip = "212.49.98.48"
ipgeobases = IPGeoBase.objects.by_ip(ip)
if ipgeobases.exists():
ipgeobase = ipgeobases[0]
print ipgeobase.city # Населенный пункт (Екатеринбург)
print ipgeobase.region # Регион (Свердловская область)
print ipgeobase.country # Страна (Россия)
Очень удобно вынести определение города или региона в отдельную middleware и записать в request значение region, таким образом оно станет сразу доступно во всех видах и шаблонах.
Комментариев нет:
Отправка комментария