python - 在 Django 中为 GeoIP2 创建项目设置

标签 python django geolocation django-contrib

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

我假设它会放在 settings.py 中,但我不确定这个特定模块的语法,Django 文档在这方面绝对是垃圾。

最佳答案

你说得对,它应该放在 Django 的 settings.py 文件中。您应该能够在 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-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. 创建一个目录来存储required datasets .请注意,这些必须解压缩: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': '美国'}

关于python - 在 Django 中为 GeoIP2 创建项目设置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35103654/

相关文章:

python - 列表的 N 个不同排列的随机样本

python - 如何从 yfinance 数据中删除时区?

python - 零填充 Pandas 列

jQuery AJAX 响应拆分

python - 如何在 Django 中检查匹配列表?

python - 谷歌应用程序引擎 webapp WSGIApplication 中 hexdigest 的正则表达式匹配

django - 以编程方式禁用 Django 命令中的 DEBUG

arrays - 在 ElasticSearch 中从数组中删除元素/对象,然后匹配查询

r - 如何从R中的纬度和经度中找到城市和州

javascript - 如何将一个异步函数的结果使用到另一个异步函数