跳转到主要内容

GeoIp数据作为应用程序,方便安装。还包括模板过滤器、实用函数和管理命令以更新GeoIp数据。

项目描述

安装

pip install django-geoip-utils

在您的设置中写入

import geoip_utils
GEOIP_PATH = geoip_utils.where()

此产品包含由MaxMind创建的GeoLite数据,可通过http://maxmind.com/获取

设置

GEOIP_REQUEST_IP_RESOLVER

默认值::

'geoip_utils.core.remote_addr_ip'

用于从请求中获取客户端IP的功能。

选项::

  • 'geoip_utils.utils.remote_addr_ip'

    使用请求的REMOTE_ADDR。适用于开发和标准设置

  • 'geoip_utils.utils.x_forwarded_ip'

    选择HTTP_X_FORWARDED_FOR请求头中的第一个IP。对于负载均衡器很有用,但在某些情况下可能会被欺骗。Amazon ELB设置此值是可靠的。

  • 'geoip_utils.utils.real_ip'

    使用HTTP_X_REAL_IP属性

GEOIP_CACHE_METHOD

默认值::

django.contrib.gis.geoip.GeoIP.GEOIP_STANDARD

用于检索位置的缓存功能。

选项::

  • django.contrib.gis.geoip.GeoIP.GEOIP_STANDARD

    从文件系统读取数据库,使用最少的内存

  • django.contrib.gis.geoip.GeoIP.GEOIP_MEMORY_CACHE

    将数据库加载到内存中,性能更好但使用更多内存

  • django.contrib.gis.geoip.GeoIP.GEOIP_CHECK_CACHE

    检查更新数据库。如果数据库已更新,则重新加载文件句柄和/或内存缓存。此选项不是线程安全的,但适用于开发。

  • django.contrib.gis.geoip.GeoIP.GEOIP_INDEX_CACHE

    仅缓存数据库中最常访问的索引部分,与GEOIP_STANDARD相比查找更快,但与GEOIP_MEMORY_CACHE相比内存使用更少 - 适用于更大的数据库,例如GeoIP Organization和GeoIP City。注意,对于GeoIP Country、Region和Netspeed数据库,GEOIP_INDEX_CACHEGEOIP_MEMORY_CACHE等效。

  • django.contrib.gis.geoip.GeoIP.GEOIP_MMAP_CACHE

    将数据库加载到mmap共享内存中(Windows上不可用)。

工具

有几个服务器实用函数可以使处理更简单。

from geoip_utils import core as geoip

geoip.get_country(request)

geoip.get_city(request)

geoip.get_lat_lon(request)

geoip.get_country_code(request)

geoip.get_country_name(request)

模板过滤器

在模板中存在用于提取所需信息的过滤器。您需要在您的TEMPLATE_CONTEXT_PROCESSORS中启用django.core.context_processors.request

{% load geoip_tags %}

{{ request|country_code_of_request }}
{{ request|city_name_of_request }}
{{ request|postal_code_of_request }}
{{ request|region_of_request }}
{{ request|dma_code_of_request }}
{{ request|area_code_of_request }}
{{ request|lat_of_request }}
{{ request|lon_of_request }}

管理命令

您可以通过运行update_geoip_data管理命令来就地下载更新的GeoIP数据。

项目详情


下载文件

下载适合您平台的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。

源分发

django-geoip-utils-0.1.1.tar.gz (12.4 MB 查看哈希值)

上传时间