在Django中为GeoIP2创建项目设置。

问题描述 投票:2回答:2

我想玩玩Django的GeoIP2,它要求你在一个文件中设置国家和城市数据集的路径。GEOIP_PATH 设置。我的问题是,我不知道应该把这个设置放在哪里,以便像 Python shell 这样的东西能够看到它。

我想它应该放在 settings.py但我不确定这个模块的语法,而且Django的文档在这方面是绝对的垃圾,我想玩玩Django的GeoIP2,它要求你在GEOIP_PATH中设置国家和城市数据集的路径。

python django geolocation django-contrib
2个回答
8
投票

你是对的,它应该放在 settings.py 文件,在Django中。你应该可以在你的Django项目app中找到这个文件。然后在该文件中放置以下内容。

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

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

编辑


如果你想通过python shell尝试GeoIP2 for Django,你必须按照以下步骤进行操作(请注意,我使用的是Windows系统,但对于基于Linux的操作系统来说,应该是一样的)。

请注意,我在这个答案中使用的是Windows系统,但在基于Linux的操作系统中应该是一样的: 如果你已经建立了一个Django项目,你可以从第10步开始。

  1. 确保你已经安装了Python (我在这个答案中使用Python 3.5.1),请注意以下几点。pip.

  2. 安装 virtualenvwrapper。pip install virtualenvwrapper-win (或 pip 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'}


0
投票

我发现的简单步骤

  1. Pip 安装 geoip2
  2. 注册地址 geoip2
  3. 下载GeoIP2和GeoIP传统数据库gzip文件。页面应该是这样的
  4. 在Django项目文件夹的根目录下,运行以下命令解压文件 tar -xzf zip_file_name.tar.gz 在你的控制台
  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
© www.soinside.com 2019 - 2024. All rights reserved.