Hel*_*nar 24 django geolocation
我想通过从他们的IP地址检测他们的位置,将我的用户重定向到我网站中的特定位置区域.
在Django 1.1.1下实现这一目标的最佳方法是什么?
谢谢
编辑:我想在欧洲以城市为基础的定位.
Nic*_*sta 33
GeoDjango看起来很适合您的需求.我不确定您希望如何引导用户,但使用GeoIP API,您可以执行以下操作:
from django.contrib.gis.utils import GeoIP
g = GeoIP()
ip = request.META.get('REMOTE_ADDR', None)
if ip:
city = g.city(ip)['city']
else:
city = 'Rome' # default city
# proceed with city
Run Code Online (Sandbox Code Playgroud)
该文件解释的很详细的东西; 我会花一点时间仔细阅读它们.
Tom*_*ski 25
已经提到过GeoIP,但是如果你想将它嵌入到你的应用程序中而不是安装在Python的站点包中,我发现pygeoip安装起来不那么麻烦.尽管如此,它仍适用于免费的MaxMind数据库,例如GeoLite City one.
使用示例(与GeoIP几乎相同):
>>> import pygeoip
>>> gi = pygeoip.GeoIP(GEOIP_DATABASE, pygeoip.GEOIP_STANDARD)
>>> gi.record_by_addr(ip)
{'country': '...', 'country_code': '...', ...}
Run Code Online (Sandbox Code Playgroud)