在Django中为GeoIP2创建项目设置

BHo*_*ens 2 python django geolocation django-contrib

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

我假设它会进入settings.py,但我不确定这个特定模块的语法,并且Django文档是关于此的绝对垃圾.

Bon*_*ono 8

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

GEOIP_PATH = '/path/to/your/geoip/datafiles'
Run Code Online (Sandbox Code Playgroud)

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

编辑


如果你想通过python shell尝试使用GeoIP2 for Django,你必须遵循以下步骤(请注意我使用的是Windows的答案,但对于基于Linux的操作系统应该是相同的):

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

  1. 确保你安装了Python(我正在使用Python 3.5.1来解决这个问题),inccding 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'}