我正在尝试使用GeoIP2 for Django,它要求您在function a() {
var a = 3; // using var makes "a" local, and does not override your global a()
return a;
}
console.log(a()); // 3
console.log(a()); // 3
设置中设置国家和城市数据集的路径。我的问题是我不知道我应该把这个设置放在哪里,以便像Python shell这样的东西可以看到它。
我认为它会进入GEOIP_PATH
,但我不确定这个特定模块的语法,而Django文档对此绝对是垃圾。
答案 0 :(得分:5)
你应该把它放在Django的settings.py
文件里面。您应该能够在Django项目/应用程序中的某处找到此文件。然后将以下内容放在该文件中:
GEOIP_PATH = '/path/to/your/geoip/datafiles'
然后,GEOIP将能够找到它在应用程序中使用所需的文件。
<小时/> 如果你想通过python shell尝试使用GeoIP2 for Django,你必须遵循以下步骤(请注意我使用的是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
通过实例化一个带有您下载文件位置路径的类来创建GeoIP2
对象:>>> g = GeoIP2('geoip')
测试一切正常:>>> g.country('google.com')
{'country_code': 'US', 'country_name': 'United States'}
答案 1 :(得分:0)
我找到的简单步骤
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