在 Django 中为 GeoIP2 创建项目设置
Creating project settings for GeoIP2 in Django
我正在尝试使用 Django 的 GeoIP2,这需要您在 GEOIP_PATH
设置中设置您的国家和城市数据集的路径。我的问题是我不知道应该将此设置放在哪里,以便 Python shell 之类的东西可以看到它。
我假设它会进入 settings.py
,但我不确定这个特定模块的语法,Django 文档在这方面绝对是垃圾。
你说得对,它应该放在 Django 的 settings.py
文件中。您应该能够在 Django project/app 的某处找到此文件。然后将以下内容放入该文件中:
GEOIP_PATH = '/path/to/your/geoip/datafiles'
GEOIP 随后将能够找到在应用程序中使用所需的文件。
编辑
如果你想通过 python shell 为 Django 尝试 GeoIP2,你将必须按照以下步骤操作(请注意我正在使用 Windows 作为这个答案,但它应该是相同的对于基于 linux 的操作系统):
注意:如果您已经设置了 Django 项目,则可以从第 10 步开始。
确保安装了 Python(我使用 Python 3.5.1 来回答这个问题),包括 pip
.
安装 virtualenvwrapper:pip install virtualenvwrapper-win
(或 pip install virtualenvwrapper
非 windows 安装)
为您的项目创建虚拟环境:mkvirtualenv GeoIP
为此项目安装 Django:pip install django
要检查安装是否成功,请执行 django-admin --version
,这应该会显示 Django 安装的版本,对我来说是 1.9.1
。如果您没有看到这个,请确保您的 python 安装正确。
创建一个用于保存项目的目录。在我的例子中,我创建了一个名为 Django 的目录:mkdir Django
移动到这个目录:cd Django
创建 Django 项目:django-admin startproject geoip_test
移动到 Django 为您创建的新目录:cd geoip_test
安装geoip2:pip install geoip2
创建一个目录来存储required datasets。请注意,这些必须解压缩:mkdir geoip
。把你下载解压后的文件放在这个目录下。
启动 Django Python shell: python manage.py shell
导入 GeoIP2:>>> from django.contrib.gis.geoip2 import GeoIP2
通过实例化一个 class 对象来创建一个 GeoIP2
对象,其中包含您下载的文件所在位置的路径:>>> g = GeoIP2('geoip')
测试一切正常:>>> g.country('google.com')
{'country_code': 'US', 'country_name': 'United States'}
我找到的简单步骤
- pip 安装 geoip2
- 在 geoip2
注册
- 下载 GeoIP2 和 GeoIP 遗留数据库 gzip 文件,
page should look like this
- 在控制台运行
tar -xzf zip_file_name.tar.gz
中将文件解压缩到 Django 项目文件夹的根目录中
- 在您的
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
我正在尝试使用 Django 的 GeoIP2,这需要您在 GEOIP_PATH
设置中设置您的国家和城市数据集的路径。我的问题是我不知道应该将此设置放在哪里,以便 Python shell 之类的东西可以看到它。
我假设它会进入 settings.py
,但我不确定这个特定模块的语法,Django 文档在这方面绝对是垃圾。
你说得对,它应该放在 Django 的 settings.py
文件中。您应该能够在 Django project/app 的某处找到此文件。然后将以下内容放入该文件中:
GEOIP_PATH = '/path/to/your/geoip/datafiles'
GEOIP 随后将能够找到在应用程序中使用所需的文件。
编辑
如果你想通过 python shell 为 Django 尝试 GeoIP2,你将必须按照以下步骤操作(请注意我正在使用 Windows 作为这个答案,但它应该是相同的对于基于 linux 的操作系统):
注意:如果您已经设置了 Django 项目,则可以从第 10 步开始。
确保安装了 Python(我使用 Python 3.5.1 来回答这个问题),包括
pip
.安装 virtualenvwrapper:
pip install virtualenvwrapper-win
(或pip install virtualenvwrapper
非 windows 安装)为您的项目创建虚拟环境:
mkvirtualenv GeoIP
为此项目安装 Django:
pip install django
要检查安装是否成功,请执行
django-admin --version
,这应该会显示 Django 安装的版本,对我来说是1.9.1
。如果您没有看到这个,请确保您的 python 安装正确。创建一个用于保存项目的目录。在我的例子中,我创建了一个名为 Django 的目录:
mkdir Django
移动到这个目录:
cd Django
创建 Django 项目:
django-admin startproject geoip_test
移动到 Django 为您创建的新目录:
cd geoip_test
安装geoip2:
pip install geoip2
创建一个目录来存储required datasets。请注意,这些必须解压缩:
mkdir geoip
。把你下载解压后的文件放在这个目录下。启动 Django Python shell:
python manage.py shell
导入 GeoIP2:
>>> from django.contrib.gis.geoip2 import GeoIP2
通过实例化一个 class 对象来创建一个
GeoIP2
对象,其中包含您下载的文件所在位置的路径:>>> g = GeoIP2('geoip')
测试一切正常:
>>> g.country('google.com')
{'country_code': 'US', 'country_name': 'United States'}
我找到的简单步骤
- pip 安装 geoip2
- 在 geoip2 注册
- 下载 GeoIP2 和 GeoIP 遗留数据库 gzip 文件, page should look like this
- 在控制台运行
tar -xzf zip_file_name.tar.gz
中将文件解压缩到 Django 项目文件夹的根目录中
- 在您的
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