将maxmind geoip数据与金字塔web应用程序集成。

pyramid_geoip的Python项目详细描述


[金字塔geoip][]将[maxmind][]geoip数据库与[金字塔][]
/sqlalchemy web应用程序集成。您可以使用它通过其IP地址来定位传入请求:


data=request.geoip('89.16.224.130')


data['city',data['country_code']
->;'london','gb'


data['latitude',data['longitude']
->;51.5141999999988,-0.09309999999992633


geoip数据存储在一个*sql数据库*(而不是
将其存储在文件系统中),并在应用程序启动时将所有数据(许多MB)读入*内存*
。这很可能*不是*您想要的模式/设置,在
这种情况下,您可能会发现使用[pygeoip][]更好地集成您自己。

[alembic][]:


alembic-c$paste_-config-revision--autogenerate
alembic-c$paste_-config-upgrade head


覆盖数据源,使用
[pastedeploy配置文件][]:

geoip.cities_ip6_url=https://example.com/geolitectyv6.dat.gz

您还可以使用本地提供的数据文件,这些文件将覆盖从db machinery读取的url/
。默认查找的默认值为:



geoip.cititiip4\u-ipu-path=vendor/geolitecity.dat
geoip.citiip6.citiip6.dat







>使用“request.geoip”提供的实用工具按IP地址查找数据,例如在[view callable][]:







>默认情况下,默认情况下,这将按默认值查找数据,默认情况下,这将按默认值查找数据,这将按默认值使用传入请求的IP地址(从[wsgi environment][]中的“remote_addr”读取,或从[load balancer或proxy][]提供的“x-forwarded-for”头的值读取)。请注意
它也适用于IPv4和IPv6地址。


自己指定地址,例如:


data=request.geoip('89.16.224.130')

等:


data['country_code''''''gb''gb'
data['city''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''gb'>




data['>


注意,您可能需要:

1。在主
应用程序配置中“config.include”包之前运行此脚本(因为下载数据需要时间,并且
应用程序将挂起,直到数据可用)
1。计划每月运行一次测试,` pip安装nose coverage mock,例如:

$nosets pyramid撸geoip--with doctest--with coverage--cover tests--cover package pyramid撸geoip
……
name stmts miss cover missing
----------
pyramid撸geoip 10 0100%
金字塔geoip.interfaces 4 0 100%
金字塔geoip.lookup 69 0 100%
金字塔geoip.update 12 0 100%
总95 0 100%
——————————————————————————————————————————————————————---————
在0.041秒内运行了6个测试




[pyramid-geoip]:https://github.com/thruflo/pyramid-geoip
[maxmind]:http://www.maxmind.com/en/home
[pyramid]:http://pyramid.readthedocs.org
[pygeoip]:https://pypi.python.org/pypi/pygeoip
[pip]:http://www.pip-installer.org
[pyramid_-basemodel.blob.blob]:https://github.com/thruflo/pyramid_-basemodel/blob/master/src/pyramid_-basemodel/blob.py
[alembic]:http://alembic.readthedocs.org/en/latest/tutorial.html自动生成迁移
[配置应用程序]:http://pyramid.readthedocs.org/en/latest/narr/configuration.html
[视图可调用]:http://pyramid.readthedocs.org/en/latest/narr/views.html
[粘贴部署配置文件]:http://pyramid.readthedocs.org/en/latest/narr/paste.html
[wsgi环境]:http://en.wikipedia.org/wiki/web_服务器网关接口
[负载平衡器或代理]:http://en.wikipedia.org/wiki/x-forwarded-for

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java Android改造响应不等于邮递员响应   bean的spring初始化失败;嵌套的例外是java。lang.IllegalArgumentException:Pointcut格式不正确:应为“')”   java在运行时传递可选的未知参数   java Android:无法使用密码保护条目   java无法从SimpleIntegerProperty转换为属性<Integer>   java Ibatis:有没有办法在sqlmap xml中的Ibatis resultmap子选择中添加行处理程序?   java如何使用ant脚本运行maven项目?   java如何在DesignGridLayout库中动态创建JButton值?   java JPA多事务管理器   java Eclipse RCP,为编辑器添加了一个新视图   从源文件夹导入时,不会显示Java图像   使用hadoop2设置java单节点集群。4.0与cygwin   java如何连接图像?   JavaJPQL:向数据库中已经存在的值添加一个int值