2

我正在尝试使用 Django 的 GeoIP2,它要求您在设置中设置您的国家和城市数据集的路径GEOIP_PATH。我的问题是我不知道我应该把这个设置放在哪里,以便像 Python shell 这样的东西可以看到它。

我认为它会进入settings.py,但我不确定这个特定模块的语法,而且 Django 文档对此绝对是垃圾。

4

2 回答 2

10

你是对的,它应该放在settings.pyDjango 的文件中。您应该能够在您的 Django 项目/应用程序中的某处找到此文件。然后将以下内容放入该文件中:

GEOIP_PATH = '/path/to/your/geoip/datafiles'

然后,GEOIP 将能够找到它在应用程序中使用所需的文件。

编辑


如果您想通过 python shell 为 Django 尝试 GeoIP2,您必须按照以下步骤操作(请注意,我使用 Windows 来回答这个问题,但对于基于 linux 的操作系统应该是相同的):

注意:如果您已经设置了 Django 项目,则可以从第 10 步开始。

  1. 确保您已安装 Python(我使用 Python 3.5.1 回答此问题),包括pip.

  2. 安装 virtualenvwrapper:(pip install virtualenvwrapper-winpip install virtualenvwrapper用于非 Windows 安装)

  3. 为您的项目创建一个虚拟环境:mkvirtualenv GeoIP

  4. 为此项目安装 Django:pip install django

  5. 要检查安装是否成功执行django-admin --version,这应该向您显示 Django 安装的版本,这是1.9.1给我的。如果你没有看到这个,请确保你的 python 安装是正确的。

  6. 创建一个您希望保存项目的目录。就我而言,我创建了一个名为 Django 的目录:mkdir Django

  7. 移动到这个目录:cd Django

  8. 创建一个 Django 项目:django-admin startproject geoip_test

  9. 移动到 Django 为您创建的新目录:cd geoip_test

  10. 安装geoip2:pip install geoip2

  11. 创建一个目录来存储所需的数据集。请注意,这些必须解压缩:mkdir geoip. 将您下载并解压缩的文件放在此目录中。

  12. 启动 Django Python shell:python manage.py shell

  13. 导入 GeoIP2:>>> from django.contrib.gis.geoip2 import GeoIP2

  14. GeoIP2通过使用您下载的文件所在位置的路径实例化一个类来创建一个对象:>>> g = GeoIP2('geoip')

  15. 测试一切正常:>>> g.country('google.com')
    {'country_code': 'US', 'country_name': 'United States'}

于 2016-01-30T15:54:24.077 回答
1

我发现的简单步骤

  1. 点安装geoip2
  2. geoip2注册
  3. 下载 GeoIP2 和 GeoIP Legacy Databases gzip 文件, 页面应如下所示
  4. tar -xzf zip_file_name.tar.gz通过在控制台中运行将文件解压缩到 Django 项目文件夹的根目录中
  5. 在您views.py需要的任何应用程序中,执行如下

.

from django.contrib.gis.geoip2 import GeoIP2
def index(request):
 g = GeoIP2('GeoLite2-Country_20223519') #Enter folder name
 country_code = g.country_code('15.194.1.177') #Enter IP address
于 2020-05-20T13:23:38.547 回答